blk-merge: fix blk_bio_segment_split
authorMing Lei <ming.lei@canonical.com>
Tue, 24 Nov 2015 02:35:30 +0000 (10:35 +0800)
committerJens Axboe <axboe@fb.com>
Tue, 24 Nov 2015 03:16:53 +0000 (20:16 -0700)
commit02e707424c2eadbcda68cd38876c9f4434ca8e1a
tree697fced5154db2d7890d97a72f87cfa211345370
parent578270bfbd2803dc7b0b03fbc2ac119efbc73195
blk-merge: fix blk_bio_segment_split

Commit bdced438acd83a(block: setup bi_phys_segments after
splitting) introduces function of computing bio->bi_phys_segments
during bio splitting.

Unfortunately both bio->bi_seg_front_size and bio->bi_seg_back_size
arn't computed, so too many physical segments may be obtained
for one request since both the two are used to check if one segment
across two bios can be possible.

This patch fixes the issue by computing the two variables in
blk_bio_segment_split().

Fixes: bdced438acd83a(block: setup bi_phys_segments after splitting)
Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Reported-by: Mark Salter <msalter@redhat.com>
Tested-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Tested-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-merge.c