diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-03-30 14:05:05 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-22 17:08:38 -0400 |
commit | e5e6aaa7979ab588868f686c8bd8997264492610 (patch) | |
tree | 0b3edc5d557f6d9b991f7f4e0142dfb7981215cd /fs/bcachefs/ec.c | |
parent | d06c1a0cbce929c0bafd7f37dcb0fbf9e652abb5 (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>
Diffstat (limited to 'fs/bcachefs/ec.c')
-rw-r--r-- | fs/bcachefs/ec.c | 3 |
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, |