|
@@ -146,22 +146,21 @@ static struct bio *blk_bio_segment_split(struct request_queue *q,
|
|
|
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 == queue_max_segments(q))
|
|
|
goto split;
|
|
|
|
|
|
+ if (nsegs == 1 && seg_size > front_seg_size)
|
|
|
+ front_seg_size = seg_size;
|
|
|
+
|
|
|
nsegs++;
|
|
|
bvprv = bv;
|
|
|
bvprvp = &bvprv;
|
|
|
seg_size = bv.bv_len;
|
|
|
sectors += bv.bv_len >> 9;
|
|
|
|
|
|
- if (nsegs == 1 && seg_size > front_seg_size)
|
|
|
- front_seg_size = seg_size;
|
|
|
}
|
|
|
|
|
|
do_split = false;
|
|
@@ -174,6 +173,8 @@ split:
|
|
|
bio = new;
|
|
|
}
|
|
|
|
|
|
+ if (nsegs == 1 && seg_size > front_seg_size)
|
|
|
+ front_seg_size = seg_size;
|
|
|
bio->bi_seg_front_size = front_seg_size;
|
|
|
if (seg_size > bio->bi_seg_back_size)
|
|
|
bio->bi_seg_back_size = seg_size;
|