diff options
-rw-r--r-- | block/blk-merge.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index 9402a7c3ba22..22467f475ab4 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c | |||
@@ -277,6 +277,9 @@ static struct bio *blk_bio_segment_split(struct request_queue *q, | |||
277 | bvprvp = &bvprv; | 277 | bvprvp = &bvprv; |
278 | sectors += bv.bv_len >> 9; | 278 | sectors += bv.bv_len >> 9; |
279 | 279 | ||
280 | if (nsegs == 1 && seg_size > front_seg_size) | ||
281 | front_seg_size = seg_size; | ||
282 | |||
280 | continue; | 283 | continue; |
281 | } | 284 | } |
282 | new_segment: | 285 | new_segment: |
@@ -401,6 +404,11 @@ static unsigned int __blk_recalc_rq_segments(struct request_queue *q, | |||
401 | 404 | ||
402 | seg_size += bv.bv_len; | 405 | seg_size += bv.bv_len; |
403 | bvprv = bv; | 406 | bvprv = bv; |
407 | |||
408 | if (nr_phys_segs == 1 && seg_size > | ||
409 | front_seg_size) | ||
410 | front_seg_size = seg_size; | ||
411 | |||
404 | continue; | 412 | continue; |
405 | } | 413 | } |
406 | new_segment: | 414 | new_segment: |