[GIT PULL 13/16] xfs: inode-related repair fixes

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

 



Hi Chandan,

Please pull this branch with changes for xfs for 6.10-rc1.

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 ab97f4b1c030750f2475bf4da8a9554d02206640:

xfs: repair AGI unlinked inode bucket lists (2024-04-15 14:58:58 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/inode-repair-improvements-6.10_2024-04-15

for you to fetch changes up to 1a5f6e08d4e379a23da5be974aee50b26a20c5b0:

xfs: create subordinate scrub contexts for xchk_metadata_inode_subtype (2024-04-15 14:59:00 -0700)

----------------------------------------------------------------
xfs: inode-related repair fixes [v30.3 13/16]

While doing QA of the online fsck code, I made a few observations:
First, nobody was checking that the di_onlink field is actually zero;
Second, that allocating a temporary file for repairs can fail (and
thus bring down the entire fs) if the inode cluster is corrupt; and
Third, that file link counts do not pin at ~0U to prevent integer
overflows.  Fourth, the x{chk,rep}_metadata_inode_fork functions
should be subclassing the main scrub context, not modifying the
parent's setup willy-nilly.

This scattered patchset fixes those three problems.

This has been running on the djcloud for months with no problems.  Enjoy!

Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>

----------------------------------------------------------------
Darrick J. Wong (4):
xfs: check unused nlink fields in the ondisk inode
xfs: try to avoid allocating from sick inode clusters
xfs: pin inodes that would otherwise overflow link count
xfs: create subordinate scrub contexts for xchk_metadata_inode_subtype

fs/xfs/libxfs/xfs_format.h    |  6 ++++
fs/xfs/libxfs/xfs_ialloc.c    | 40 ++++++++++++++++++++++++++
fs/xfs/libxfs/xfs_inode_buf.c |  8 ++++++
fs/xfs/scrub/common.c         | 23 +++------------
fs/xfs/scrub/dir_repair.c     | 11 ++-----
fs/xfs/scrub/inode_repair.c   | 12 ++++++++
fs/xfs/scrub/nlinks.c         |  4 ++-
fs/xfs/scrub/nlinks_repair.c  |  8 ++----
fs/xfs/scrub/repair.c         | 67 +++++++++----------------------------------
fs/xfs/scrub/scrub.c          | 63 ++++++++++++++++++++++++++++++++++++++++
fs/xfs/scrub/scrub.h          | 11 +++++++
fs/xfs/xfs_inode.c            | 33 ++++++++++++++-------
12 files changed, 187 insertions(+), 99 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