From: Darrick J. Wong <darrick.w...@oracle.com>

[ Upstream commit 498fe261f0d6d5189f8e11d283705dd97b474b54 ]

We always know the correct state of the rmap record flags (attr, bmbt,
unwritten) so check them by direct comparison.

Fixes: d852657ccfc0 ("xfs: cross-reference reverse-mapping btree")
Signed-off-by: Darrick J. Wong <darrick.w...@oracle.com>
Reviewed-by: Chandan Babu R <chandanrli...@gmail.com>
Reviewed-by: Christoph Hellwig <h...@lst.de>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 fs/xfs/scrub/bmap.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/fs/xfs/scrub/bmap.c b/fs/xfs/scrub/bmap.c
index b05d65fd360b3..cf005e18d6186 100644
--- a/fs/xfs/scrub/bmap.c
+++ b/fs/xfs/scrub/bmap.c
@@ -225,13 +225,13 @@ xchk_bmap_xref_rmap(
         * which doesn't track unwritten state.
         */
        if (owner != XFS_RMAP_OWN_COW &&
-           irec->br_state == XFS_EXT_UNWRITTEN &&
-           !(rmap.rm_flags & XFS_RMAP_UNWRITTEN))
+           !!(irec->br_state == XFS_EXT_UNWRITTEN) !=
+           !!(rmap.rm_flags & XFS_RMAP_UNWRITTEN))
                xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
                                irec->br_startoff);
 
-       if (info->whichfork == XFS_ATTR_FORK &&
-           !(rmap.rm_flags & XFS_RMAP_ATTR_FORK))
+       if (!!(info->whichfork == XFS_ATTR_FORK) !=
+           !!(rmap.rm_flags & XFS_RMAP_ATTR_FORK))
                xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
                                irec->br_startoff);
        if (rmap.rm_flags & XFS_RMAP_BMBT_BLOCK)
-- 
2.27.0



Reply via email to