[ANNOUNCE] xfs: online repair is completely finished!

Darrick J. Wong
2023-08-22T00:22:11Z

Hi folks,

I am /very/ pleased to announce that online repair for XFS is completely
finished. For those of you who have been following along all this time,
this means that part 1 and part 2 are done!

With the addition in part 2 of directory parent pointers patchset,
xfs_scrub gains the ability to correct broken links and loops in the
directory tree. Part 2 also adds a faster FITRIM implementation,
improved detection of malicious filenames, and a vectorized scrub mode
that cuts the runtime by 20%.

Code coverage averages around ~75% for the online fsck code (and ~85%
for the rest of XFS), and the kernel can now rebuild 90% of the
corruptions that can manifest on a mountable filesystem.

The code itself lives in my git trees, which I've just updated:
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/log/?h=vectorized-scrub
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=vectorized-scrub
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfstests-dev.git/log/?h=scrub-directory-tree

As I have now been testing online repair in its various stages [on my
testing cloud] for two years and the fstests cloud has nearly cleared
300 million successful filesystem repairs, I am discontinuing all
notices about "This is an extraordinary way to destroy your data".
It works, and it's time to merge it to get broader testing.

A big thank you to Allison Henderson, Catherine Hoang for their work on
the directory parent pointers feature; Chandan Babu for reviewing the
design documentation; and Dave Chinner and Matthew Wilcox for staring
at the code longer than is probably healthy. 8-)

Stay tuned for more exciting announcements!

--Darrick