Hi all, The design document discusses the need for a specialized inode scan cursor to manage walking every file on a live filesystem to build replacement metadata objects while receiving updates about the files already scanned. This series adds two pieces of infrastructure -- the scan cursor, and live hooks to deliver information about updates going on in other parts of the filesystem. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=scrub-iscan --- fs/xfs/Kconfig | 37 ++++ fs/xfs/Makefile | 6 + fs/xfs/scrub/iscan.c | 478 ++++++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/iscan.h | 62 ++++++ fs/xfs/scrub/trace.c | 1 fs/xfs/scrub/trace.h | 74 ++++++++ fs/xfs/xfs_hooks.c | 94 ++++++++++ fs/xfs/xfs_hooks.h | 72 ++++++++ fs/xfs/xfs_iwalk.c | 13 - fs/xfs/xfs_linux.h | 1 10 files changed, 826 insertions(+), 12 deletions(-) create mode 100644 fs/xfs/scrub/iscan.c create mode 100644 fs/xfs/scrub/iscan.h create mode 100644 fs/xfs/xfs_hooks.c create mode 100644 fs/xfs/xfs_hooks.h