summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2022-06-14 01:37:16 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2022-06-16 22:01:10 -0400
commit3c960be12d5c9a566846861a4e9267789c157d4c (patch)
tree5a68297e0a187c6cca2dce3c42c2a3440235af91
parent20ad364c98e32054935da9b0b2b85c82e2aeceef (diff)
bcachefs: Fix btree node read retries
b->written wasn't being reset to 0 in the btree node read retry path, causing decrypting & validation of previously read bsets to not be re-run - ouch. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/btree_io.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_io.c b/fs/bcachefs/btree_io.c
index 598d6c5b4fe2..9bf3f77bcae6 100644
--- a/fs/bcachefs/btree_io.c
+++ b/fs/bcachefs/btree_io.c
@@ -884,6 +884,8 @@ int bch2_btree_node_read_done(struct bch_fs *c, struct bch_dev *ca,
int ret, retry_read = 0, write = READ;
b->version_ondisk = U16_MAX;
+ /* We might get called multiple times on read retry: */
+ b->written = 0;
iter = mempool_alloc(&c->fill_iter, GFP_NOIO);
sort_iter_init(iter, b);