aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-03-30 14:05:05 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:08:38 -0400
commite5e6aaa7979ab588868f686c8bd8997264492610 (patch)
tree0b3edc5d557f6d9b991f7f4e0142dfb7981215cd
parentd06c1a0cbce929c0bafd7f37dcb0fbf9e652abb5 (diff)
bcachefs: Fix ec_stripe_update_ptrs()
bch2_btree_iter_set_pos() invalidates the key returned by peek(). Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/ec.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c
index bc11f7e056eb..909a4a5036ab 100644
--- a/fs/bcachefs/ec.c
+++ b/fs/bcachefs/ec.c
@@ -804,8 +804,6 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
continue;
}
- bch2_btree_iter_set_pos(iter, bkey_start_pos(k.k));
-
dev = s->key.v.ptrs[idx].dev;
bkey_on_stack_reassemble(&sk, c, k);
@@ -820,6 +818,7 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
extent_stripe_ptr_add(e, s, ec_ptr, idx);
+ bch2_btree_iter_set_pos(iter, bkey_start_pos(&sk.k->k));
bch2_trans_update(&trans, iter, sk.k, 0);
ret = bch2_trans_commit(&trans, NULL, NULL,