summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/blk-merge.c8
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 }
282new_segment: 285new_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 }
406new_segment: 414new_segment: