From: Kent Overstreet Date: Fri, 27 Oct 2023 17:53:07 +0000 (-0400) Subject: bcachefs: Fix deleted inodes btree in snapshot deletion X-Git-Tag: v6.7-rc1~50^2~34 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2e7acdfbcad8b60eeef29d3beb3eb9a7085e3768;p=thirdparty%2Flinux.git bcachefs: Fix deleted inodes btree in snapshot deletion Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/snapshot.c b/fs/bcachefs/snapshot.c index a3fecc7850019..e9af77b384c76 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,