Linux-XFS Archive mirror
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: chandanbabu@kernel.org, djwong@kernel.org
Cc: hch@lst.de, linux-xfs@vger.kernel.org
Subject: [GIT PULL 13/16] xfs: inode-related repair fixes
Date: Mon, 15 Apr 2024 17:30:46 -0700	[thread overview]
Message-ID: <171322718995.141687.5544842750949971895.stg-ugh@frogsfrogsfrogs> (raw)
In-Reply-To: <20240416002427.GB11972@frogsfrogsfrogs>

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

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


  parent reply	other threads:[~2024-04-16  0:30 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-16  0:24 [GIT PULLBOMB v30.3] xfs: online repair, part 1 is done Darrick J. Wong
2024-04-16  0:27 ` [GIT PULL 01/16] xfs: improve log incompat feature handling Darrick J. Wong
2024-04-16  0:27 ` [GIT PULL 02/16] xfs: refactorings for atomic file content exchanges Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 03/16] xfs: " Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 04/16] xfs: create temporary files for online repair Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 05/16] xfs: online repair of realtime summaries Darrick J. Wong
2024-04-16  0:28 ` [GIT PULL 06/16] xfs: set and validate dir/attr block owners Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 07/16] xfs: online repair of extended attributes Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 08/16] xfs: online repair of inode unlinked state Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 09/16] xfs: online repair of directories Darrick J. Wong
2024-04-16  0:29 ` [GIT PULL 10/16] xfs: move orphan files to lost and found Darrick J. Wong
2024-04-16  0:30 ` [GIT PULL 11/16] xfs: online repair of symbolic links Darrick J. Wong
2024-04-16  0:30 ` [GIT PULL 12/16] xfs: online fsck of iunlink buckets Darrick J. Wong
2024-04-16  0:30 ` Darrick J. Wong [this message]
2024-04-16  0:33 ` [GIT PULL 14/16] xfs: less heavy locks during fstrim Darrick J. Wong
2024-04-16  0:33 ` [GIT PULL 15/16] xfs: design documentation for online fsck, part 2 Darrick J. Wong
2024-04-16  0:33 ` [GIT PULL 16/16] xfs: retain ILOCK during directory updates Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=171322718995.141687.5544842750949971895.stg-ugh@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=chandanbabu@kernel.org \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).