Hi all, Prior to introducing parent pointer extended attributes, let's spend some time cleaning up the attr code and strengthening the validation that it performs on attrs coming in from the disk. If you're going to start using this code, I strongly recommend pulling from my git trees, which are linked below. This has been running on the djcloud for months with no problems. 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=improve-attr-validation-6.10 xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=improve-attr-validation-6.10 --- Commits in this patchset: * xfs_scrub_all: fail fast on masked units * xfs_scrub: automatic downgrades to dry-run mode in service mode * xfs_scrub: add an optimization-only mode * xfs_repair: check free space requirements before allowing upgrades * xfs_repair: enforce one namespace bit per extended attribute * xfs_repair: check for unknown flags in attr entries --- include/libxfs.h | 1 libxfs/libxfs_api_defs.h | 1 man/man8/xfs_scrub.8 | 6 ++ repair/attr_repair.c | 30 ++++++++++ repair/phase2.c | 134 ++++++++++++++++++++++++++++++++++++++++++++++ scrub/Makefile | 2 - scrub/phase1.c | 13 ++++ scrub/phase4.c | 6 ++ scrub/repair.c | 37 ++++++++++++- scrub/repair.h | 2 + scrub/scrub.c | 4 + scrub/xfs_scrub.c | 21 +++++++ scrub/xfs_scrub.h | 1 scrub/xfs_scrub_all.in | 21 +++++++ 14 files changed, 272 insertions(+), 7 deletions(-)