diff options
author | Ming Lei <ming.lei@redhat.com> | 2019-03-17 06:01:05 -0400 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-04-01 14:11:21 -0400 |
commit | fd7d8d4232f08b0df623d9ea7e941f0350a26e14 (patch) | |
tree | 859fc1781425f2abeb39447c77081e73c99b37a6 /block/blk-merge.c | |
parent | db5ebd6edd2627d7e81a031643cf43587f63e66c (diff) |
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: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-merge.c')
-rw-r--r-- | block/blk-merge.c | 17 |
1 files changed, 0 insertions, 17 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index 1c9d4f0f96ea..aa9164eb7187 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c | |||
@@ -267,23 +267,6 @@ static struct bio *blk_bio_segment_split(struct request_queue *q, | |||
267 | goto split; | 267 | goto split; |
268 | } | 268 | } |
269 | 269 | ||
270 | if (bvprvp) { | ||
271 | if (seg_size + bv.bv_len > queue_max_segment_size(q)) | ||
272 | goto new_segment; | ||
273 | if (!biovec_phys_mergeable(q, bvprvp, &bv)) | ||
274 | goto new_segment; | ||
275 | |||
276 | seg_size += bv.bv_len; | ||
277 | bvprv = bv; | ||
278 | bvprvp = &bvprv; | ||
279 | sectors += bv.bv_len >> 9; | ||
280 | |||
281 | if (nsegs == 1 && seg_size > front_seg_size) | ||
282 | front_seg_size = seg_size; | ||
283 | |||
284 | continue; | ||
285 | } | ||
286 | new_segment: | ||
287 | if (nsegs == max_segs) | 270 | if (nsegs == max_segs) |
288 | goto split; | 271 | goto split; |
289 | 272 | ||