block: ensure to split after potentially bouncing a bio
authorJunichi Nomura <j-nomura@ce.jp.nec.com>
Tue, 22 Dec 2015 17:23:44 +0000 (10:23 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 22 Dec 2015 17:26:53 +0000 (10:26 -0700)
commit23688bf4f830a89866fd0ed3501e342a7360fe4f
tree39614e2d840c745b28d09adb14f3761082beb75b
parentb5875222de2fb91339db79a753677ba4f68120d0
block: ensure to split after potentially bouncing a bio

blk_queue_bio() does split then bounce, which makes the segment
counting based on pages before bouncing and could go wrong. Move
the split to after bouncing, like we do for blk-mq, and the we
fix the issue of having the bio count for segments be wrong.

Fixes: 54efd50bfd87 ("block: make generic_make_request handle arbitrarily sized bios")
Cc: stable@vger.kernel.org
Tested-by: Artem S. Tashkinov <t.artem@lycos.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-core.c