On Fri, Nov 24, 2023 at 03:52:23PM -0800, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > In the previous patch, we added some code to perform sufficient repairs > to an ondisk inode record such that the inode cache would be willing to > load the inode. This is now a few commits back. My adjust this to be less specific. > If the broken inode was a shortform directory, it will > reset the directory to something plausible, which is to say an empty > subdirectory of the root. The telltale signs that something is > seriously wrong is the broken link count. > > Such directories look clean, but they shouldn't participate in a > filesystem scan to find or confirm a directory parent pointer. Create a > predicate that identifies such directories and abort the scrub. > > Found by fuzzing xfs/1554 with multithreaded xfs_scrub enabled and > u3.bmx[0].startblock = zeroes. This kind of ties into my comment on the previous comment, but needing heuristics to find zapped inodes or inode forks just seems to be asking for trouble. I suspect we'll need proper on-disk flags to notice the corrupted / half-rebuilt state.