mbox series

[GIT,PULL,05/23] xfsprogs: inode-related repair fixes

Message ID 172230458253.1455085.17011073206641235117.stg-ugh@frogsfrogsfrogs (mailing list archive)
State New
Headers show
Series [GIT,PULL,01/23] libxfs: fixes for 6.9 | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git tags/inode-repair-improvements-6.10_2024-07-29

Message

Darrick J. Wong July 30, 2024, 2:41 a.m. UTC
Hi Carlos,

Please pull this branch with changes for xfsprogs 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.

The following changes since commit 7e74984e652fab200bc7319d7c3d90f6ae36be2e:

xfs_{db,repair}: add an explicit owner field to xfs_da_args (2024-07-29 17:01:06 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfsprogs-dev.git tags/inode-repair-improvements-6.10_2024-07-29

for you to fetch changes up to ebf05a446c09336c08865dc29a6332be6ff8223c:

mkfs/repair: pin inodes that would otherwise overflow link count (2024-07-29 17:01:06 -0700)

----------------------------------------------------------------
xfsprogs: inode-related repair fixes [v30.9 05/28]

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.

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@kernel.org>

----------------------------------------------------------------
Darrick J. Wong (2):
libxfs: port the bumplink function from the kernel
mkfs/repair: pin inodes that would otherwise overflow link count

include/xfs_inode.h |  2 ++
libxfs/util.c       | 18 ++++++++++++++++++
mkfs/proto.c        |  4 ++--
repair/incore_ino.c | 14 +++++++++-----
repair/phase6.c     | 10 +++++-----
5 files changed, 36 insertions(+), 12 deletions(-)