Commit fd7d8d42 authored by Ming Lei's avatar Ming Lei Committed by Jens Axboe
Browse files

block: don't merge adjacent bvecs to one segment in bio blk_queue_split



For normal filesystem IO, each page is added via blk_add_page(),
in which bvec(page) merge has been handled already, and basically
not possible to merge two adjacent bvecs in one bio.

So not try to merge two adjacent bvecs in blk_queue_split().

Cc: Omar Sandoval <osandov@fb.com>
Cc: Christoph Hellwig <hch@lst.de>
Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent db5ebd6e
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -267,23 +267,6 @@ static struct bio *blk_bio_segment_split(struct request_queue *q,
			goto split;
		}

		if (bvprvp) {
			if (seg_size + bv.bv_len > queue_max_segment_size(q))
				goto new_segment;
			if (!biovec_phys_mergeable(q, bvprvp, &bv))
				goto new_segment;

			seg_size += bv.bv_len;
			bvprv = bv;
			bvprvp = &bvprv;
			sectors += bv.bv_len >> 9;

			if (nsegs == 1 && seg_size > front_seg_size)
				front_seg_size = seg_size;

			continue;
		}
new_segment:
		if (nsegs == max_segs)
			goto split;