Hi Zorro,
Please pull this branch with changes for fstests.
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 11914614784735c504f43b5b6baabaa713375984:
fstests: generic/353 should accomodate other pwrite behaviors (2023-10-27 20:19:19 +0800)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfstests-dev.git tags/fix-iunlink-list_2023-11-16
for you to fetch changes up to 22ee90ae2da798d7462579aeb4b17d8b44671e9d:
xfs: test unlinked inode list repair on demand (2023-11-16 09:11:57 -0800)
----------------------------------------------------------------
fstests: reload entire iunlink lists [v5]
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".
v2: rebase to for-next, resend without changes
v3: add necessary prerequisites
v4: fix accidental commit to wrong patch
v5: add more review tags
This has been running on the djcloud for months with no problems. Enjoy!
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
----------------------------------------------------------------
Darrick J. Wong (2):
common: make helpers for ttyprintk usage
xfs: test unlinked inode list repair on demand
common/fuzzy | 4 +-
common/rc | 36 ++++++++-
tests/xfs/1872 | 111 +++++++++++++++++++++++++++
tests/xfs/1872.out | 5 ++
tests/xfs/1873 | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/xfs/1873.out | 6 ++
tests/xfs/329 | 4 +-
tests/xfs/434 | 2 +-
tests/xfs/435 | 2 +-
tests/xfs/436 | 2 +-
tests/xfs/444 | 2 +-
tests/xfs/516 | 2 +-
12 files changed, 381 insertions(+), 10 deletions(-)
create mode 100755 tests/xfs/1872
create mode 100644 tests/xfs/1872.out
create mode 100755 tests/xfs/1873
create mode 100644 tests/xfs/1873.out
Hi Zorro, Please pull this branch with changes for fstests. 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 11914614784735c504f43b5b6baabaa713375984: fstests: generic/353 should accomodate other pwrite behaviors (2023-10-27 20:19:19 +0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfstests-dev.git tags/fix-iunlink-list_2023-11-16 for you to fetch changes up to 22ee90ae2da798d7462579aeb4b17d8b44671e9d: xfs: test unlinked inode list repair on demand (2023-11-16 09:11:57 -0800) ---------------------------------------------------------------- fstests: reload entire iunlink lists [v5] 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". v2: rebase to for-next, resend without changes v3: add necessary prerequisites v4: fix accidental commit to wrong patch v5: add more review tags This has been running on the djcloud for months with no problems. Enjoy! Signed-off-by: Darrick J. Wong <djwong@kernel.org> ---------------------------------------------------------------- Darrick J. Wong (2): common: make helpers for ttyprintk usage xfs: test unlinked inode list repair on demand common/fuzzy | 4 +- common/rc | 36 ++++++++- tests/xfs/1872 | 111 +++++++++++++++++++++++++++ tests/xfs/1872.out | 5 ++ tests/xfs/1873 | 215 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/1873.out | 6 ++ tests/xfs/329 | 4 +- tests/xfs/434 | 2 +- tests/xfs/435 | 2 +- tests/xfs/436 | 2 +- tests/xfs/444 | 2 +- tests/xfs/516 | 2 +- 12 files changed, 381 insertions(+), 10 deletions(-) create mode 100755 tests/xfs/1872 create mode 100644 tests/xfs/1872.out create mode 100755 tests/xfs/1873 create mode 100644 tests/xfs/1873.out