]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
xfs: fix remote xattr valuelblk check
authorDarrick J. Wong <djwong@kernel.org>
Fri, 23 Jan 2026 17:27:33 +0000 (09:27 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Fri, 23 Jan 2026 17:27:33 +0000 (09:27 -0800)
In debugging other problems with generic/753, it turns out that it's
possible for the system go to down in the middle of a remote xattr set
operation such that the leaf block entry is marked incomplete and
valueblk is set to zero.  Make this no longer a failure.

Cc: <stable@vger.kernel.org> # v4.15
Fixes: 13791d3b833428 ("xfs: scrub extended attribute leaf space")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/scrub/attr.c

index a397c50b77943eaf6f2717d72747c5f808635f3b..c3c122ea2d3224c0c05b2c157d050e9759c19846 100644 (file)
@@ -338,7 +338,10 @@ xchk_xattr_entry(
                rentry = xfs_attr3_leaf_name_remote(leaf, idx);
                namesize = xfs_attr_leaf_entsize_remote(rentry->namelen);
                name_end = (char *)rentry + namesize;
-               if (rentry->namelen == 0 || rentry->valueblk == 0)
+               if (rentry->namelen == 0)
+                       xchk_da_set_corrupt(ds, level);
+               if (rentry->valueblk == 0 &&
+                   !(ent->flags & XFS_ATTR_INCOMPLETE))
                        xchk_da_set_corrupt(ds, level);
        }
        if (name_end > buf_end)