Re: [PATCH 5/7] xfs: abort directory parent scrub scans if we encounter a zapped directory

Christoph Hellwig
2023-11-30T04:47:34Z

On Fri, Nov 24, 2023 at 03:52:23PM -0800, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> 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.