block: don't merge adjacent bvecs to one segment in bio blk_queue_split
authorMing Lei <ming.lei@redhat.com>
Sun, 17 Mar 2019 10:01:05 +0000 (18:01 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 1 Apr 2019 18:11:21 +0000 (12:11 -0600)
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: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c

index 1c9d4f0f96eafa2fdf7b54ea8f0860e054223147..aa9164eb71871864bb4a01c2d201ed2d9871c8dc 100644 (file)
@@ -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;