diff options
Diffstat (limited to 'fs/xfs/xfs_alloc.c')
-rw-r--r-- | fs/xfs/xfs_alloc.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 54fa69e27761..0a2a87208b17 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c | |||
@@ -2272,6 +2272,9 @@ xfs_alloc_read_agf( | |||
2272 | be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) && | 2272 | be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) && |
2273 | be32_to_cpu(agf->agf_fllast) < XFS_AGFL_SIZE(mp) && | 2273 | be32_to_cpu(agf->agf_fllast) < XFS_AGFL_SIZE(mp) && |
2274 | be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp); | 2274 | be32_to_cpu(agf->agf_flcount) <= XFS_AGFL_SIZE(mp); |
2275 | if (xfs_sb_version_haslazysbcount(&mp->m_sb)) | ||
2276 | agf_ok = agf_ok && be32_to_cpu(agf->agf_btreeblks) <= | ||
2277 | be32_to_cpu(agf->agf_length); | ||
2275 | if (unlikely(XFS_TEST_ERROR(!agf_ok, mp, XFS_ERRTAG_ALLOC_READ_AGF, | 2278 | if (unlikely(XFS_TEST_ERROR(!agf_ok, mp, XFS_ERRTAG_ALLOC_READ_AGF, |
2276 | XFS_RANDOM_ALLOC_READ_AGF))) { | 2279 | XFS_RANDOM_ALLOC_READ_AGF))) { |
2277 | XFS_CORRUPTION_ERROR("xfs_alloc_read_agf", | 2280 | XFS_CORRUPTION_ERROR("xfs_alloc_read_agf", |
@@ -2297,6 +2300,7 @@ xfs_alloc_read_agf( | |||
2297 | #ifdef DEBUG | 2300 | #ifdef DEBUG |
2298 | else if (!XFS_FORCED_SHUTDOWN(mp)) { | 2301 | else if (!XFS_FORCED_SHUTDOWN(mp)) { |
2299 | ASSERT(pag->pagf_freeblks == be32_to_cpu(agf->agf_freeblks)); | 2302 | ASSERT(pag->pagf_freeblks == be32_to_cpu(agf->agf_freeblks)); |
2303 | ASSERT(pag->pagf_btreeblks == be32_to_cpu(agf->agf_btreeblks)); | ||
2300 | ASSERT(pag->pagf_flcount == be32_to_cpu(agf->agf_flcount)); | 2304 | ASSERT(pag->pagf_flcount == be32_to_cpu(agf->agf_flcount)); |
2301 | ASSERT(pag->pagf_longest == be32_to_cpu(agf->agf_longest)); | 2305 | ASSERT(pag->pagf_longest == be32_to_cpu(agf->agf_longest)); |
2302 | ASSERT(pag->pagf_levels[XFS_BTNUM_BNOi] == | 2306 | ASSERT(pag->pagf_levels[XFS_BTNUM_BNOi] == |