From e5e6aaa7979ab588868f686c8bd8997264492610 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Mon, 30 Mar 2020 14:05:05 -0400 Subject: [PATCH] bcachefs: Fix ec_stripe_update_ptrs() bch2_btree_iter_set_pos() invalidates the key returned by peek(). Signed-off-by: Kent Overstreet Signed-off-by: Kent Overstreet --- fs/bcachefs/ec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c index bc11f7e056ebd..909a4a5036ab2 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, -- 2.30.2