Hi all, This patchset adds a new IFLAG to the scrub ioctl so that userspace can force a rebuild of an otherwise consistent piece of metadata. This will eventually enable the use of online repair to relocate metadata during a filesystem reorganization (e.g. shrink). For now, it facilitates stress testing of online repair without needing the debugging knobs to be enabled. 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=repair-force-rebuild xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=repair-force-rebuild fstests git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=repair-force-rebuild --- io/scrub.c | 22 ++++++++++++----- libxfs/xfs_fs.h | 6 ++++- man/man2/ioctl_xfs_scrub_metadata.2 | 5 ++++ man/man8/xfs_io.8 | 3 ++ scrub/phase1.c | 28 ++++++++++++++++++++++ scrub/scrub.c | 45 ++++++++++++++++++----------------- scrub/scrub.h | 1 + scrub/xfs_scrub.c | 3 ++ scrub/xfs_scrub.h | 1 + 9 files changed, 84 insertions(+), 30 deletions(-)