From 2e7acdfbcad8b60eeef29d3beb3eb9a7085e3768 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Fri, 27 Oct 2023 13:53:07 -0400 Subject: bcachefs: Fix deleted inodes btree in snapshot deletion Signed-off-by: Kent Overstreet --- fs/bcachefs/snapshot.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'fs/bcachefs/snapshot.c') diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c index a3fecc785001..e9af77b384c7 100644 --- a/fs/bcachefs/snapshot.c +++ b/fs/bcachefs/snapshot.c @@ -1437,6 +1437,15 @@ int bch2_delete_dead_snapshots(struct bch_fs *c) if (!btree_type_has_snapshots(id)) continue; + /* + * deleted inodes btree is maintained by a trigger on the inodes + * btree - no work for us to do here, and it's not safe to scan + * it because we'll see out of date keys due to the btree write + * buffer: + */ + if (id == BTREE_ID_deleted_inodes) + continue; + ret = for_each_btree_key_commit(trans, iter, id, POS_MIN, BTREE_ITER_PREFETCH|BTREE_ITER_ALL_SNAPSHOTS, k, -- cgit v1.2.3