Linux XFS filesystem development
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: "Darrick J. Wong" <djwong@kernel.org>
Cc: cem@kernel.org, hch@lst.de, stable@vger.kernel.org,
	linux-xfs@vger.kernel.org
Subject: Re: [PATCH 2/6] xfs: don't stash removename operations with unknown ftype
Date: Tue, 25 Aug 2026 08:28:00 +0200	[thread overview]
Message-ID: <20260825062800.GB24324@lst.de> (raw)
In-Reply-To: <178760940721.944084.7350116310283813250.stgit@frogsfrogsfrogs>

On Mon, Aug 24, 2026 at 10:34:54PM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> LOLLM notices that the behavior of xrep_dir_replay_update changes based
> on the ftype recorded in the stashed removename information.  It also
> notices that the unlink iops sometimes set that ftype to FT_UNKNOWN
> because the regular directory tree update code paths don't need to know
> the ftype of the child.
> 
> Unfortunately, this results in incorrect link counts, which eventually
> trips link count errors in later phases of xfs_scrub, or in xfs_repair.
> Fix this.

Fix what?

> @@ -1381,9 +1381,24 @@ xrep_dir_live_update(
>  		if (p->delta > 0)
>  			error = xrep_dir_stash_createname(rd, p->name,
>  					I_INO(p->ip));
> -		else
> -			error = xrep_dir_stash_removename(rd, p->name,
> +		else {
> +			/*
> +			 * xfs_dentry_to_name in unlink or rename-exchange can
> +			 * pass us names with ftype FT_UNKNOWN, but we really
> +			 * must know the ftype of the child that is being
> +			 * removed so that we can do nlink updates correctly
> +			 * without holding inode references.
> +			 */
> +			struct xfs_name	name = {
> +				.name	= p->name->name,
> +				.len	= p->name->len,
> +				.type	= xfs_mode_to_ftype(
> +						VFS_IC(p->ip)->i_mode),
> +			};

.. fix up the xfs_name to always have the correct type is I guess what
the commit log should say.

With that:

Reviewed-by: Christoph Hellwig <hch@lst.de>


  reply	other threads:[~2026-08-25  6:28 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25  5:34 [PATCHSET 1/2] xfs: LLM-inspired bug fixes, part 7 Darrick J. Wong
2026-08-25  5:34 ` [PATCH 1/6] xfs: don't spin forever on zero-length dirents when salvaging them Darrick J. Wong
2026-08-25  6:26   ` Christoph Hellwig
2026-08-25 18:11     ` Darrick J. Wong
2026-08-25  5:34 ` [PATCH 2/6] xfs: don't stash removename operations with unknown ftype Darrick J. Wong
2026-08-25  6:28   ` Christoph Hellwig [this message]
2026-08-25 18:12     ` Darrick J. Wong
2026-08-25  5:35 ` [PATCH 3/6] xfs: log the tempip after we convert it to extents format Darrick J. Wong
2026-08-25  6:28   ` Christoph Hellwig
2026-08-25  5:35 ` [PATCH 4/6] xfs: fix parent rec lookup initialization in xrep_metapath_unlink Darrick J. Wong
2026-08-25  6:31   ` Christoph Hellwig
2026-08-25 18:14     ` Darrick J. Wong
2026-08-25  5:35 ` [PATCH 5/6] xfs: handle reconnecting metadir subdirectories Darrick J. Wong
2026-08-25  6:32   ` Christoph Hellwig
2026-08-25 23:40     ` Darrick J. Wong
2026-08-26  4:46       ` Christoph Hellwig
2026-08-26  4:53         ` Darrick J. Wong
2026-08-25  5:35 ` [PATCH 6/6] xfs: lock the healthmon when inserting unmount event Darrick J. Wong
2026-08-25  6:33   ` Christoph Hellwig
2026-08-25 18:17     ` Darrick J. Wong
  -- strict thread matches above, loose matches on Subject: below --
2026-08-27  5:30 [PATCHSET v2 1/2] xfs: LLM-inspired bug fixes, part 7 Darrick J. Wong
2026-08-27  5:31 ` [PATCH 2/6] xfs: don't stash removename operations with unknown ftype 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=20260825062800.GB24324@lst.de \
    --to=hch@lst.de \
    --cc=cem@kernel.org \
    --cc=djwong@kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=stable@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