Commit beefa6ba authored by Jens Axboe's avatar Jens Axboe

block: only honor SG gap prevention for merges that contain data

We can safely merge anything that wont generate an SG list entry,
so if the bio is data-less (discard), don't look at potential
SG gaps.
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent f6454b04
...@@ -589,7 +589,8 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio) ...@@ -589,7 +589,8 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)
!blk_write_same_mergeable(rq->bio, bio)) !blk_write_same_mergeable(rq->bio, bio))
return false; return false;
if (q->queue_flags & (1 << QUEUE_FLAG_SG_GAPS)) { /* Only check gaps if the bio carries data */
if (q->queue_flags & (1 << QUEUE_FLAG_SG_GAPS) && bio_has_data(bio)) {
struct bio_vec *bprev; struct bio_vec *bprev;
bprev = &rq->biotail->bi_io_vec[rq->biotail->bi_vcnt - 1]; bprev = &rq->biotail->bi_io_vec[rq->biotail->bi_vcnt - 1];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment