mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-28 13:22:57 +00:00
bcachefs: Make sure bch2_read_extent obeys BCH_READ_MUST_CLONE
This fixes the bch2_read_retry_nodecode() path, we were resubmitting a bio without properly reinitializing it. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
24326cd12a
commit
9ad26b2b56
1 changed files with 2 additions and 3 deletions
|
@ -1981,7 +1981,7 @@ int __bch2_read_extent(struct bch_fs *c, struct bch_read_bio *orig,
|
|||
goto hole;
|
||||
|
||||
iter.bi_size = pick.crc.compressed_size << 9;
|
||||
goto noclone;
|
||||
goto get_bio;
|
||||
}
|
||||
|
||||
if (!(flags & BCH_READ_LAST_FRAGMENT) ||
|
||||
|
@ -2028,7 +2028,7 @@ int __bch2_read_extent(struct bch_fs *c, struct bch_read_bio *orig,
|
|||
pick.crc.live_size = bvec_iter_sectors(iter);
|
||||
offset_into_extent = 0;
|
||||
}
|
||||
|
||||
get_bio:
|
||||
if (rbio) {
|
||||
/*
|
||||
* promote already allocated bounce rbio:
|
||||
|
@ -2068,7 +2068,6 @@ int __bch2_read_extent(struct bch_fs *c, struct bch_read_bio *orig,
|
|||
rbio->bio.bi_iter = iter;
|
||||
rbio->split = true;
|
||||
} else {
|
||||
noclone:
|
||||
rbio = orig;
|
||||
rbio->bio.bi_iter = iter;
|
||||
EBUG_ON(bio_flagged(&rbio->bio, BIO_CHAIN));
|
||||
|
|
Loading…
Reference in a new issue