OSDN Git Service

Merge branch 'for-4.2/core' of git://git.kernel.dk/linux-block
[uclinux-h8/linux.git] / block / blk-merge.c
index fd3fee8..30a0d9f 100644 (file)
@@ -589,7 +589,8 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)
            !blk_write_same_mergeable(rq->bio, bio))
                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;
 
                bprev = &rq->biotail->bi_io_vec[rq->biotail->bi_vcnt - 1];