From: Kent Overstreet Date: Mon, 30 Mar 2020 18:05:05 +0000 (-0400) Subject: bcachefs: Fix ec_stripe_update_ptrs() X-Git-Tag: v6.7-rc1~201^2~2123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5e6aaa7979ab588868f686c8bd8997264492610;p=thirdparty%2Fkernel%2Fstable.git 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 --- 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,