[PATCH 6.1 07/16] xfs: revert commit 44af6c7e59b12
Leah Rumancik <[email protected]> Wed, 30 Apr 2025 14:26:54 -0700
| Newsgroups | dev.linux.lists.xfs-stable,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
From: "Darrick J. Wong" <[email protected]> [ Upstream commit 2a009397eb5ae178670cbd7101e9635cf6412b35 ] In my haste to fix what I thought was a performance problem in the attr scrub code, I neglected to notice that the xfs_attr_get_ilocked also had the effect of checking that attributes can actually be looked up through the attr dabtree. Fix this. Fixes: 44af6c7e59b12 ("xfs: don't load local xattr values during scrub") Signed-off-by: Darrick J. Wong <[email protected]> Reviewed-by: Christoph Hellwig <[email protected]> Signed-off-by: Leah Rumancik <[email protected]> Acked-by: "Darrick J. Wong" <[email protected]> --- fs/xfs/scrub/attr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/xfs/scrub/attr.c b/fs/xfs/scrub/attr.c index b6f0c9f3f124..f51771e5c3fe 100644 --- a/fs/xfs/scrub/attr.c +++ b/fs/xfs/scrub/attr.c @@ -157,10 +157,15 @@ xchk_xattr_listent( args.hashval = xfs_da_hashname(args.name, args.namelen); args.trans = context->tp; args.value = xchk_xattr_valuebuf(sx->sc); args.valuelen = valuelen; + /* + * Get the attr value to ensure that lookup can find this attribute + * through the dabtree indexing and that remote value retrieval also + * works correctly. + */ error = xfs_attr_get_ilocked(&args); /* ENODATA means the hash lookup failed and the attr is bad */ if (error == -ENODATA) error = -EFSCORRUPTED; if (!xchk_fblock_process_error(sx->sc, XFS_ATTR_FORK, args.blkno, -- 2.49.0.906.g1f30a19c02-goog