Re: [PATCH 1/3] xfs/018: remove inline xattr recovery tests

Darrick J. Wong
2026-02-05T16:56:25Z

On Mon, Feb 02, 2026 at 09:22:36PM -0800, Christoph Hellwig wrote:
> On Mon, Feb 02, 2026 at 11:11:12AM -0800, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> >
> > Now that we can do xattr updates in a single transaction (as opposed to
> > using the attr intent machinery) if we keep the attr structure in short
> > format, remove the attr intent item log recovery tests.
>
> I have a bit of a hard time parsing this. Currently with xfs/for-next
> these fail, so removing them fixes it, which is probably what drove
> this.

Yep.

> But looking through the patches I'm not sure why they actually are
> failing - the updates are logged as part of the inode item, and
> nothing in test_attr_replay seems to actually look at log specific
> bits?

I've rewritten the commit message; does this help?

"In Linux 7.0 we've changed the extended attribute update code to try to
take a shortcut for performance reasons. Before walking through the
attr intent state machine (slow), the update will check to see if the
attr structure is in short format and will stay in that format after the
change. If so, then the incore inode can be updated and logged, and the
update is complete (fast) in a single transaction.

"(Obviously, for complex attr structures or large changes we still walk
through the intent machinery.)

"However, xfs/018 tests the behavior of the "larp" error injector, which
only triggers from inside the attr intent state machine. Therefore, the
short format tests don't actually trip the injector. It makes no sense
to add a new larp injection callsite for the shortcut because either the
single transaction gets written to disk or it doesn't."

> Only vaguely related, but should we ensure to always clear error
> tags after the test runs to ensure they don't leak into other tests?

They go away with _scratch_remount because error tags only live as long
as the mount.

--D