Commit 498fe261 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: strengthen rmap record flags checking

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

Fixes: d852657c ("xfs: cross-reference reverse-mapping btree")
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarChandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
parent e95b6c3e
...@@ -218,13 +218,13 @@ xchk_bmap_xref_rmap( ...@@ -218,13 +218,13 @@ xchk_bmap_xref_rmap(
* which doesn't track unwritten state. * which doesn't track unwritten state.
*/ */
if (owner != XFS_RMAP_OWN_COW && if (owner != XFS_RMAP_OWN_COW &&
irec->br_state == XFS_EXT_UNWRITTEN && !!(irec->br_state == XFS_EXT_UNWRITTEN) !=
!(rmap.rm_flags & XFS_RMAP_UNWRITTEN)) !!(rmap.rm_flags & XFS_RMAP_UNWRITTEN))
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork, xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
irec->br_startoff); irec->br_startoff);
if (info->whichfork == XFS_ATTR_FORK && if (!!(info->whichfork == XFS_ATTR_FORK) !=
!(rmap.rm_flags & XFS_RMAP_ATTR_FORK)) !!(rmap.rm_flags & XFS_RMAP_ATTR_FORK))
xchk_fblock_xref_set_corrupt(info->sc, info->whichfork, xchk_fblock_xref_set_corrupt(info->sc, info->whichfork,
irec->br_startoff); irec->br_startoff);
if (rmap.rm_flags & XFS_RMAP_BMBT_BLOCK) if (rmap.rm_flags & XFS_RMAP_BMBT_BLOCK)
......
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