[GIT PULL 6/8] xfs: reload entire iunlink lists

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


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.


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(-)

[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]

  Powered by Linux