Check the block references in the AGF and AGFL headers to make sure they make sense. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- libxfs/xfs_alloc.c | 2 +- libxfs/xfs_alloc.h | 2 ++ libxfs/xfs_fs.h | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libxfs/xfs_alloc.c b/libxfs/xfs_alloc.c index 0f93016..055d57e 100644 --- a/libxfs/xfs_alloc.c +++ b/libxfs/xfs_alloc.c @@ -625,7 +625,7 @@ const struct xfs_buf_ops xfs_agfl_buf_ops = { /* * Read in the allocation group free block array. */ -STATIC int /* error */ +int /* error */ xfs_alloc_read_agfl( xfs_mount_t *mp, /* mount point structure */ xfs_trans_t *tp, /* transaction pointer */ diff --git a/libxfs/xfs_alloc.h b/libxfs/xfs_alloc.h index 0b00de0..c3ada6b 100644 --- a/libxfs/xfs_alloc.h +++ b/libxfs/xfs_alloc.h @@ -204,6 +204,8 @@ xfs_alloc_get_rec( int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); +int xfs_alloc_read_agfl(struct xfs_mount *mp, struct xfs_trans *tp, + xfs_agnumber_t agno, struct xfs_buf **bpp); int xfs_alloc_fix_freelist(struct xfs_alloc_arg *args, int flags); int xfs_free_extent_fix_freelist(struct xfs_trans *tp, xfs_agnumber_t agno, struct xfs_buf **agbp); diff --git a/libxfs/xfs_fs.h b/libxfs/xfs_fs.h index 64c7b43..dbdd346 100644 --- a/libxfs/xfs_fs.h +++ b/libxfs/xfs_fs.h @@ -560,7 +560,9 @@ struct xfs_scrub_metadata { * Metadata types and flags for scrub operation. */ #define XFS_SCRUB_TYPE_SB 0 /* superblock */ -#define XFS_SCRUB_TYPE_MAX 0 +#define XFS_SCRUB_TYPE_AGF 1 /* AG free header */ +#define XFS_SCRUB_TYPE_AGFL 2 /* AG free list */ +#define XFS_SCRUB_TYPE_MAX 2 #define XFS_SCRUB_FLAGS_ALL 0x0 /* no flags yet */ _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs