diff options
author | Mike Christie <mchristi@redhat.com> | 2016-06-05 15:32:15 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-06-07 15:41:38 -0400 |
commit | 8fe0d473f5477e9916d3ac581a226acfe83142be (patch) | |
tree | a433795d1ad57cd0b2fdf64e6d3b7ae579abfd78 /block | |
parent | 63a4cc24867de73626e16767ce616c50dc5438d3 (diff) |
block: convert merge/insert code to check for REQ_OPs.
This patch converts the block layer merging code to use separate variables
for the operation and flags, and to check req_op for the REQ_OP.
Signed-off-by: Mike Christie <mchristi@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 2 | ||||
-rw-r--r-- | block/blk-merge.c | 10 |
2 files changed, 7 insertions, 5 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 090e55d7cad7..1333bb764b28 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -2161,7 +2161,7 @@ EXPORT_SYMBOL(submit_bio); | |||
2161 | static int blk_cloned_rq_check_limits(struct request_queue *q, | 2161 | static int blk_cloned_rq_check_limits(struct request_queue *q, |
2162 | struct request *rq) | 2162 | struct request *rq) |
2163 | { | 2163 | { |
2164 | if (blk_rq_sectors(rq) > blk_queue_get_max_sectors(q, rq->cmd_flags)) { | 2164 | if (blk_rq_sectors(rq) > blk_queue_get_max_sectors(q, req_op(rq))) { |
2165 | printk(KERN_ERR "%s: over max size limit.\n", __func__); | 2165 | printk(KERN_ERR "%s: over max size limit.\n", __func__); |
2166 | return -EIO; | 2166 | return -EIO; |
2167 | } | 2167 | } |
diff --git a/block/blk-merge.c b/block/blk-merge.c index 5a03f967557a..c265348b75d1 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c | |||
@@ -649,7 +649,8 @@ static int attempt_merge(struct request_queue *q, struct request *req, | |||
649 | if (!rq_mergeable(req) || !rq_mergeable(next)) | 649 | if (!rq_mergeable(req) || !rq_mergeable(next)) |
650 | return 0; | 650 | return 0; |
651 | 651 | ||
652 | if (!blk_check_merge_flags(req->cmd_flags, next->cmd_flags)) | 652 | if (!blk_check_merge_flags(req->cmd_flags, req_op(req), next->cmd_flags, |
653 | req_op(next))) | ||
653 | return 0; | 654 | return 0; |
654 | 655 | ||
655 | /* | 656 | /* |
@@ -663,7 +664,7 @@ static int attempt_merge(struct request_queue *q, struct request *req, | |||
663 | || req_no_special_merge(next)) | 664 | || req_no_special_merge(next)) |
664 | return 0; | 665 | return 0; |
665 | 666 | ||
666 | if (req->cmd_flags & REQ_WRITE_SAME && | 667 | if (req_op(req) == REQ_OP_WRITE_SAME && |
667 | !blk_write_same_mergeable(req->bio, next->bio)) | 668 | !blk_write_same_mergeable(req->bio, next->bio)) |
668 | return 0; | 669 | return 0; |
669 | 670 | ||
@@ -751,7 +752,8 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio) | |||
751 | if (!rq_mergeable(rq) || !bio_mergeable(bio)) | 752 | if (!rq_mergeable(rq) || !bio_mergeable(bio)) |
752 | return false; | 753 | return false; |
753 | 754 | ||
754 | if (!blk_check_merge_flags(rq->cmd_flags, bio->bi_rw)) | 755 | if (!blk_check_merge_flags(rq->cmd_flags, req_op(rq), bio->bi_rw, |
756 | bio_op(bio))) | ||
755 | return false; | 757 | return false; |
756 | 758 | ||
757 | /* different data direction or already started, don't merge */ | 759 | /* different data direction or already started, don't merge */ |
@@ -767,7 +769,7 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio) | |||
767 | return false; | 769 | return false; |
768 | 770 | ||
769 | /* must be using the same buffer */ | 771 | /* must be using the same buffer */ |
770 | if (rq->cmd_flags & REQ_WRITE_SAME && | 772 | if (req_op(rq) == REQ_OP_WRITE_SAME && |
771 | !blk_write_same_mergeable(rq->bio, bio)) | 773 | !blk_write_same_mergeable(rq->bio, bio)) |
772 | return false; | 774 | return false; |
773 | 775 | ||