Thread (9 messages) 9 messages, 7 authors, 2017-11-17

Re: [PATCH] bio: ensure __bio_clone_fast copies bi_partno

From: Coly Li <hidden>
Date: 2017-11-17 11:04:23
Also in: linux-bcache, stable

On 17/11/2017 3:47 PM, Michael Lyle wrote:
A new field was introduced in 74d46992e0d9dee7f1f376de0d56d31614c8a17a,
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.
Hi Michael,

Thanks for the fix, it looks good to me.
Signed-off-by: Michael Lyle <redacted>
Fixes: 74d46992e0d9dee7f1f376de0d56d31614c8a17a
Reported-by: Pavel Goran <redacted>
Reported-by: Campbell Steven <redacted>
Reviewed-by: Coly Li <redacted>

Coly Li
quoted hunk ↗ jump to hunk
Cc: Christoph Hellwig <hch@lst.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: <redacted>
---
 block/bio.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/block/bio.c b/block/bio.c
index 101c2a9b5481..33fa6b4af312 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -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;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help