|
@@ -2477,26 +2477,13 @@ xfs_ialloc_log_agi(
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-#ifdef DEBUG
|
|
|
-STATIC void
|
|
|
-xfs_check_agi_unlinked(
|
|
|
- struct xfs_agi *agi)
|
|
|
-{
|
|
|
- int i;
|
|
|
-
|
|
|
- for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++)
|
|
|
- ASSERT(agi->agi_unlinked[i]);
|
|
|
-}
|
|
|
-#else
|
|
|
-#define xfs_check_agi_unlinked(agi)
|
|
|
-#endif
|
|
|
-
|
|
|
static xfs_failaddr_t
|
|
|
xfs_agi_verify(
|
|
|
struct xfs_buf *bp)
|
|
|
{
|
|
|
struct xfs_mount *mp = bp->b_target->bt_mount;
|
|
|
struct xfs_agi *agi = XFS_BUF_TO_AGI(bp);
|
|
|
+ int i;
|
|
|
|
|
|
if (xfs_sb_version_hascrc(&mp->m_sb)) {
|
|
|
if (!uuid_equal(&agi->agi_uuid, &mp->m_sb.sb_meta_uuid))
|
|
@@ -2532,7 +2519,13 @@ xfs_agi_verify(
|
|
|
if (bp->b_pag && be32_to_cpu(agi->agi_seqno) != bp->b_pag->pag_agno)
|
|
|
return __this_address;
|
|
|
|
|
|
- xfs_check_agi_unlinked(agi);
|
|
|
+ for (i = 0; i < XFS_AGI_UNLINKED_BUCKETS; i++) {
|
|
|
+ if (agi->agi_unlinked[i] == NULLAGINO)
|
|
|
+ continue;
|
|
|
+ if (!xfs_verify_ino(mp, be32_to_cpu(agi->agi_unlinked[i])))
|
|
|
+ return __this_address;
|
|
|
+ }
|
|
|
+
|
|
|
return NULL;
|
|
|
}
|
|
|
|