Commit 62530ed8 authored by Michael Lyle's avatar Michael Lyle Committed by Jens Axboe
Browse files

bio: ensure __bio_clone_fast copies bi_partno

A new field was introduced in 74d46992

, bi_partno, instead of using
bdev->bd_contains and encoding the partition information in the bi_bdev
field.  __bio_clone_fast was changed to copy the disk information, but
not the partition information.  At minimum, this regressed bcache and
caused data corruption.
Signed-off-by: default avatarMichael Lyle <>
Fixes: 74d46992

 ("block: replace bi_bdev with a gendisk pointer and partitions index")
Reported-by: default avatarPavel Goran <>
Reported-by: default avatarCampbell Steven <>
Reviewed-by: default avatarColy Li <>
Reviewed-by: default avatarMing Lei <>
Cc: <> # 4.14
Signed-off-by: default avatarJens Axboe <>
parent cce75291
......@@ -597,6 +597,7 @@ void __bio_clone_fast(struct bio *bio, struct bio *bio_src)
* so we don't set nor calculate new physical/hw segment counts here
bio->bi_disk = bio_src->bi_disk;
bio->bi_partno = bio_src->bi_partno;
bio_set_flag(bio, BIO_CLONED);
bio->bi_opf = bio_src->bi_opf;
bio->bi_write_hint = bio_src->bi_write_hint;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment