Hi all, Now that we've introduced tickets to track the status of repairs to a specific principal XFS object (fs, ag, file), use them to track the scrub state of those same objects. Ultimately, we want to make it easy to introduce vectorized repair, where we send a batch of repair requests to the kernel instead of making millions of ioctl calls. For now, however, we'll settle for easier bookkeepping. 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. --D xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=scrub-object-tracking --- scrub/phase1.c | 3 scrub/phase2.c | 12 +- scrub/phase3.c | 41 ++---- scrub/phase4.c | 16 +- scrub/phase5.c | 5 - scrub/phase7.c | 5 + scrub/repair.c | 71 +++++------ scrub/scrub.c | 321 ++++++++++++++++++++++--------------------------- scrub/scrub.h | 40 ++++-- scrub/scrub_private.h | 14 ++ 10 files changed, 257 insertions(+), 271 deletions(-)