From: Kent Overstreet Date: Sat, 29 Jun 2024 00:40:24 +0000 (-0400) Subject: bcachefs: Fix bch2_read_retry_nodecode() X-Git-Tag: v6.10~24^2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1539bdf516601cf05ab11cbc6ddbfc31d37d74f7;p=thirdparty%2Fkernel%2Flinux.git bcachefs: Fix bch2_read_retry_nodecode() BCH_READ_NODECODE mode - used by the move paths - really wants to use only the original rbio, but the retry path really wants to clone - oof. Make sure to copy the crc of the pointer we read from back to the original rbio, or we'll see spurious checksum errors later. Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/io_read.c b/fs/bcachefs/io_read.c index 2a5c4371f6f80..ebf39ef72fb2c 100644 --- a/fs/bcachefs/io_read.c +++ b/fs/bcachefs/io_read.c @@ -1003,6 +1003,9 @@ get_bio: rbio->promote = promote; INIT_WORK(&rbio->work, NULL); + if (flags & BCH_READ_NODECODE) + orig->pick = pick; + rbio->bio.bi_opf = orig->bio.bi_opf; rbio->bio.bi_iter.bi_sector = pick.ptr.offset; rbio->bio.bi_end_io = bch2_read_endio;