Hi all, With this patchset, we implement online repairs for parent pointers. This is structured similarly to the directory repair code in that we scan the entire filesystem looking for dirents and use them to reconstruct the parent pointer information. Note that the atomic swapext and block reaping code is NOT ported for this PoC, so we do not commit any repairs. 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. kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=pptrs-online-parent-repair xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=pptrs-online-parent-repair --- fs/xfs/Makefile | 1 fs/xfs/libxfs/xfs_parent.c | 56 +++ fs/xfs/libxfs/xfs_parent.h | 8 fs/xfs/scrub/parent.c | 10 + fs/xfs/scrub/parent_repair.c | 739 ++++++++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/repair.h | 4 fs/xfs/scrub/scrub.c | 2 fs/xfs/scrub/trace.c | 2 fs/xfs/scrub/trace.h | 80 +++++ fs/xfs/xfs_inode.h | 6 10 files changed, 905 insertions(+), 3 deletions(-) create mode 100644 fs/xfs/scrub/parent_repair.c