mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 08:44:21 +08:00
xfs: hoist inode record alignment checks from scrub
Move the inobt record alignment checks from xchk_iallocbt_rec into xfs_inobt_check_irec so that they are applied everywhere. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com>
This commit is contained in:
parent
e774b2ea0b
commit
de1a9ce225
@ -103,8 +103,12 @@ xfs_inobt_check_irec(
|
||||
{
|
||||
uint64_t realfree;
|
||||
|
||||
/* Record has to be properly aligned within the AG. */
|
||||
if (!xfs_verify_agino(cur->bc_ag.pag, irec->ir_startino))
|
||||
return __this_address;
|
||||
if (!xfs_verify_agino(cur->bc_ag.pag,
|
||||
irec->ir_startino + XFS_INODES_PER_CHUNK - 1))
|
||||
return __this_address;
|
||||
if (irec->ir_count < XFS_INODES_PER_HOLEMASK_BIT ||
|
||||
irec->ir_count > XFS_INODES_PER_CHUNK)
|
||||
return __this_address;
|
||||
|
@ -413,7 +413,6 @@ xchk_iallocbt_rec(
|
||||
const union xfs_btree_rec *rec)
|
||||
{
|
||||
struct xfs_mount *mp = bs->cur->bc_mp;
|
||||
struct xfs_perag *pag = bs->cur->bc_ag.pag;
|
||||
struct xchk_iallocbt *iabt = bs->private;
|
||||
struct xfs_inobt_rec_incore irec;
|
||||
uint64_t holes;
|
||||
@ -431,11 +430,6 @@ xchk_iallocbt_rec(
|
||||
}
|
||||
|
||||
agino = irec.ir_startino;
|
||||
/* Record has to be properly aligned within the AG. */
|
||||
if (!xfs_verify_agino(pag, agino + XFS_INODES_PER_CHUNK - 1)) {
|
||||
xchk_btree_set_corrupt(bs->sc, bs->cur, 0);
|
||||
goto out;
|
||||
}
|
||||
|
||||
xchk_iallocbt_rec_alignment(bs, &irec);
|
||||
if (bs->sc->sm->sm_flags & XFS_SCRUB_OFLAG_CORRUPT)
|
||||
|
Loading…
Reference in New Issue
Block a user