Commit 73c34b0b authored by Darrick J. Wong's avatar Darrick J. Wong Committed by Chandan Babu R

xfs: attr forks require attr, not attr2

It turns out that I misunderstood the difference between the attr and
attr2 feature bits.  "attr" means that at some point an attr fork was
created somewhere in the filesystem.  "attr2" means that inodes have
variable-sized forks, but says nothing about whether or not there
actually /are/ attr forks in the system.

If we have an attr fork, we only need to check that attr is set.

Fixes: 99d9d8d0 ("xfs: scrub inode block mappings")
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
parent 7c626ce4
...@@ -938,7 +938,13 @@ xchk_bmap( ...@@ -938,7 +938,13 @@ xchk_bmap(
} }
break; break;
case XFS_ATTR_FORK: case XFS_ATTR_FORK:
if (!xfs_has_attr(mp) && !xfs_has_attr2(mp)) /*
* "attr" means that an attr fork was created at some point in
* the life of this filesystem. "attr2" means that inodes have
* variable-sized data/attr fork areas. Hence we only check
* attr here.
*/
if (!xfs_has_attr(mp))
xchk_ino_set_corrupt(sc, sc->ip->i_ino); xchk_ino_set_corrupt(sc, sc->ip->i_ino);
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment