]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
xfs: revert commit 44af6c7e59b12
authorDarrick J. Wong <djwong@kernel.org>
Wed, 30 Apr 2025 21:26:54 +0000 (14:26 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 May 2025 07:41:37 +0000 (09:41 +0200)
[ 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 <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Leah Rumancik <leah.rumancik@gmail.com>
Acked-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/xfs/scrub/attr.c

index b6f0c9f3f1245ef9dd5a6e68755e65ea689847f0..f51771e5c3fe709800e9dd656aa00959f5f84623 100644 (file)
@@ -159,6 +159,11 @@ xchk_xattr_listent(
        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)