History

block: Don't merge requests if integrity flags differ

We'd occasionally merge requests with conflicting integrity flags. Introduce a merge helper which checks that the requests have compatible integrity payloads.

Martin K. Petersen committed 12 years ago

Commit 4eaf99b1 parent aae7df53 files · +39 −23Browse files

Showing the changes to include/linux/blkdev.h (1 of 3 files). Show all

Unified · Split

include/linux/blkdev.h+10−10
@@ -1497,10 +1497,10 @@ extern int blk_integrity_compare(struct gendisk *, struct gendisk *); · 1496 unmodified lines
14971497 extern int blk_rq_map_integrity_sg(struct request_queue *, struct bio *,
14981498 struct scatterlist *);
14991499 extern int blk_rq_count_integrity_sg(struct request_queue *, struct bio *);
1500−extern int blk_integrity_merge_rq(struct request_queue *, struct request *,
1501− struct request *);
1502−extern int blk_integrity_merge_bio(struct request_queue *, struct request *,
1503− struct bio *);
1500+extern bool blk_integrity_merge_rq(struct request_queue *, struct request *,
1501+ struct request *);
1502+extern bool blk_integrity_merge_bio(struct request_queue *, struct request *,
1503+ struct bio *);
15041504
15051505 static inline
15061506 struct blk_integrity *bdev_get_integrity(struct block_device *bdev)
@@ -1580,15 +1580,15 @@ static inline unsigned short queue_max_integrity_segments(struct request_queue * · 73 unmodified lines
15801580 {
15811581 return 0;
15821582 }
1583−static inline int blk_integrity_merge_rq(struct request_queue *rq,
1584− struct request *r1,
1585− struct request *r2)
1583+static inline bool blk_integrity_merge_rq(struct request_queue *rq,
1584+ struct request *r1,
1585+ struct request *r2)
15861586 {
15871587 return 0;
15881588 }
1589−static inline int blk_integrity_merge_bio(struct request_queue *rq,
1590− struct request *r,
1591− struct bio *b)
1589+static inline bool blk_integrity_merge_bio(struct request_queue *rq,
1590+ struct request *r,
1591+ struct bio *b)
15921592 {
15931593 return 0;
15941594 }