From 554d219ebb3420d21b395e1ca018ed74524b5480 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Thu, 19 Sep 2019 16:01:32 -0400 Subject: [PATCH] bcachefs: Add missing bch2_btree_node_iter_fix() call Any time we're modifying what's in the btree, iterators potentially have to be updated - this one was exposed by the reflink code. Signed-off-by: Kent Overstreet --- fs/bcachefs/btree_update_leaf.c | 5 ++--- fs/bcachefs/extents.c | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c index 007d772d6e8ff..d97d80859d1b1 100644 --- a/fs/bcachefs/btree_update_leaf.c +++ b/fs/bcachefs/btree_update_leaf.c @@ -183,9 +183,8 @@ bool bch2_btree_bset_insert_key(struct btree_iter *iter, clobber_u64s = 0; overwrite: bch2_bset_insert(b, node_iter, k, insert, clobber_u64s); - if (k->u64s != clobber_u64s || bkey_whiteout(&insert->k)) - bch2_btree_node_iter_fix(iter, b, node_iter, k, - clobber_u64s, k->u64s); + bch2_btree_node_iter_fix(iter, b, node_iter, k, + clobber_u64s, k->u64s); bch2_btree_iter_verify(iter, b); return true; } diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index d7ce87bd43747..00d77ed01234d 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -1270,6 +1270,8 @@ static void __bch2_insert_fixup_extent(struct bch_fs *c, btree_account_key_drop(l->b, _k); _k->type = KEY_TYPE_discard; reserve_whiteout(l->b, _k); + bch2_btree_node_iter_fix(iter, l->b, &l->iter, + _k, _k->u64s, _k->u64s); } break; } -- 2.30.2