xfs: refactor short form btree pointer verification

Now that we have xfs_verify_agbno, use it to verify short form btree
pointers instead of open-coding them.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
Darrick J. Wong 2018-01-08 10:51:01 -08:00
parent 8368a6019d
commit e1e55aaf1c
1 changed files with 6 additions and 6 deletions

View File

@ -4614,19 +4614,19 @@ xfs_btree_sblock_verify(
{ {
struct xfs_mount *mp = bp->b_target->bt_mount; struct xfs_mount *mp = bp->b_target->bt_mount;
struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp); struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp);
xfs_agblock_t agno;
/* numrecs verification */ /* numrecs verification */
if (be16_to_cpu(block->bb_numrecs) > max_recs) if (be16_to_cpu(block->bb_numrecs) > max_recs)
return false; return false;
/* sibling pointer verification */ /* sibling pointer verification */
if (!block->bb_u.s.bb_leftsib || agno = xfs_daddr_to_agno(mp, XFS_BUF_ADDR(bp));
(be32_to_cpu(block->bb_u.s.bb_leftsib) >= mp->m_sb.sb_agblocks && if (block->bb_u.s.bb_leftsib != cpu_to_be32(NULLAGBLOCK) &&
block->bb_u.s.bb_leftsib != cpu_to_be32(NULLAGBLOCK))) !xfs_verify_agbno(mp, agno, be32_to_cpu(block->bb_u.s.bb_leftsib)))
return false; return false;
if (!block->bb_u.s.bb_rightsib || if (block->bb_u.s.bb_rightsib != cpu_to_be32(NULLAGBLOCK) &&
(be32_to_cpu(block->bb_u.s.bb_rightsib) >= mp->m_sb.sb_agblocks && !xfs_verify_agbno(mp, agno, be32_to_cpu(block->bb_u.s.bb_rightsib)))
block->bb_u.s.bb_rightsib != cpu_to_be32(NULLAGBLOCK)))
return false; return false;
return true; return true;