Hi Chandan, Please pull this branch with changes. As usual, I did a test-merge with the main upstream branch as of a few minutes ago, and didn't see any conflicts. Please let me know if you encounter any problems. --D The following changes since commit 68b957f64fca1930164bfc6d6d379acdccd547d7: xfs: load uncached unlinked inodes into memory on demand (2023-09-12 10:31:07 -0700) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/fix-iunlink-list-6.6_2023-09-12 for you to fetch changes up to 49813a21ed57895b73ec4ed3b99d4beec931496f: xfs: make inode unlinked bucket recovery work with quotacheck (2023-09-12 10:31:07 -0700) ---------------------------------------------------------------- xfs: reload entire iunlink lists This is the second part of correcting XFS to reload the incore unlinked inode list from the ondisk contents. Whereas part one tackled failures from regular filesystem calls, this part takes on the problem of needing to reload the entire incore unlinked inode list on account of somebody loading an inode that's in the /middle/ of an unlinked list. This happens during quotacheck, bulkstat, or even opening a file by handle. In this case we don't know the length of the list that we're reloading, so we don't want to create a new unbounded memory load while holding resources locked. Instead, we'll target UNTRUSTED iget calls to reload the entire bucket. Note that this changes the definition of the incore unlinked inode list slightly -- i_prev_unlinked == 0 now means "not on the incore list". This has been lightly tested with fstests. Enjoy! Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> ---------------------------------------------------------------- Darrick J. Wong (3): xfs: use i_prev_unlinked to distinguish inodes that are not on the unlinked list xfs: reload entire unlinked bucket lists xfs: make inode unlinked bucket recovery work with quotacheck fs/xfs/xfs_attr_inactive.c | 1 - fs/xfs/xfs_export.c | 6 +++ fs/xfs/xfs_icache.c | 2 +- fs/xfs/xfs_inode.c | 115 +++++++++++++++++++++++++++++++++++++++++++-- fs/xfs/xfs_inode.h | 34 +++++++++++++- fs/xfs/xfs_itable.c | 9 ++++ fs/xfs/xfs_mount.h | 10 +++- fs/xfs/xfs_qm.c | 7 +++ fs/xfs/xfs_trace.h | 20 ++++++++ 9 files changed, 195 insertions(+), 9 deletions(-)