提交 8f57b2f0 编写于 作者: D Darrick J. Wong 提交者: Yang Yingliang

xfs: strengthen rmap record flags checking

stable inclusion
from linux-4.19.160
commit d88cc6f344a2b4a8095a0c8f392b4fa632707276

--------------------------------

[ Upstream commit 498fe261 ]

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: NDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: NChandan Babu R <chandanrlinux@gmail.com>
Reviewed-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: NCheng Jian <cj.chengjian@huawei.com>
上级 dd72da92
...@@ -207,13 +207,13 @@ xchk_bmap_xref_rmap( ...@@ -207,13 +207,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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册