block: fix blk_rq_append_bio
authorJens Axboe <axboe@kernel.dk>
Mon, 18 Dec 2017 07:40:44 +0000 (15:40 +0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 18 Dec 2017 20:55:43 +0000 (13:55 -0700)
commit0abc2a10389f0c9070f76ca906c7382788036b93
tree9d1f1b48a3acbff7ed8b1549ebb1cffe3b407b81
parent14cb0dc6479dc5ebc63b3a459a5d89a2f1b39fed
block: fix blk_rq_append_bio

Commit caa4b02476e3(blk-map: call blk_queue_bounce from blk_rq_append_bio)
moves blk_queue_bounce() into blk_rq_append_bio(), but don't consider
the fact that the bounced bio becomes invisible to caller since the
parameter type is 'struct bio *'. Make it a pointer to a pointer to
a bio, so the caller sees the right bio also after a bounce.

Fixes: caa4b02476e3 ("blk-map: call blk_queue_bounce from blk_rq_append_bio")
Cc: Christoph Hellwig <hch@lst.de>
Reported-by: Michele Ballabio <barra_cuda@katamail.com>
(handling failure of blk_rq_append_bio(), only call bio_get() after
blk_rq_append_bio() returns OK)
Tested-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-map.c
drivers/scsi/osd/osd_initiator.c
drivers/target/target_core_pscsi.c
include/linux/blkdev.h