[PATCHSET v24.0 0/3] xfs: fix iget usage in directory scrub

Darrick J. Wong
2022-12-30T22:27:21Z

Hi all,

In this series, we fix some problems with how the directory scrubber
grabs child inodes. First, we want to reduce EDEADLOCK returns by
replacing fixed-iteration loops with interruptible trylock loops.
Second, we add UNTRUSTED to the child iget call so that we can detect a
dirent that points to an unallocated inode. Third, we fix a bug where
we weren't checking the inode pointed to by dotdot entries at all.

If you're going to start using this mess, you probably ought to just
pull from my git trees, which are linked below.

This is an extraordinary way to destroy everything. Enjoy!
Comments and questions are, as always, welcome.

--D

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=scrub-dir-iget-fixes
---
fs/xfs/scrub/common.c | 22 -----
fs/xfs/scrub/common.h | 1
fs/xfs/scrub/dir.c | 79 +++++++------------
fs/xfs/scrub/parent.c | 203 +++++++++++++++++++++++--------------------------
4 files changed, 126 insertions(+), 179 deletions(-)