The handling of unlinked files with snapshots was a bit fubar -
especially if an unlinked file was then reattached in a newer snapshot.
This adds an inode flag so that we can track when an inode should, or
should not be deleted due to snapshots, when a newer snapshot still
refers to data in an unlinked file.
Kent Overstreet (5):
bcachefs: Split out check_unreachable_inodes() pass
bcachefs: reattach_inode() now correctly handles interior snapshot
nodes
bcachefs: btree_iter_peek_upto() now handles BTREE_ITER_all_snapshots
bcachefs: Delete vestigal check_inode() checks
bcachefs: bcachefs_metadata_version_inode_has_child_snapshots
fs/bcachefs/bcachefs_format.h | 3 +-
fs/bcachefs/btree_iter.c | 6 +-
fs/bcachefs/btree_iter.h | 8 +
fs/bcachefs/fs.c | 21 +-
fs/bcachefs/fs.h | 9 +-
fs/bcachefs/fsck.c | 377 +++++++++++++++++-----------
fs/bcachefs/fsck.h | 1 +
fs/bcachefs/inode.c | 233 ++++++++++++++---
fs/bcachefs/inode.h | 10 +
fs/bcachefs/inode_format.h | 3 +-
fs/bcachefs/recovery_passes_types.h | 1 +
fs/bcachefs/sb-downgrade.c | 5 +-
fs/bcachefs/sb-errors_format.h | 4 +-
13 files changed, 482 insertions(+), 199 deletions(-)
--
2.45.2