xfs: decouple inode and bmap btree header files
Currently the xfs_inode.h header has a dependency on the definition of the BMAP btree records as the inode fork includes an array of xfs_bmbt_rec_host_t objects in it's definition. Move all the btree format definitions from xfs_btree.h, xfs_bmap_btree.h, xfs_alloc_btree.h and xfs_ialloc_btree.h to xfs_format.h to continue the process of centralising the on-disk format definitions. With this done, the xfs inode definitions are no longer dependent on btree header files. The enables a massive culling of unnecessary includes, with close to 200 #include directives removed from the XFS kernel code base. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Ben Myers <bpm@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
@ -26,55 +26,6 @@ struct xfs_buf;
|
||||
struct xfs_btree_cur;
|
||||
struct xfs_mount;
|
||||
|
||||
/*
|
||||
* There is a btree for the inode map per allocation group.
|
||||
*/
|
||||
#define XFS_IBT_MAGIC 0x49414254 /* 'IABT' */
|
||||
#define XFS_IBT_CRC_MAGIC 0x49414233 /* 'IAB3' */
|
||||
|
||||
typedef __uint64_t xfs_inofree_t;
|
||||
#define XFS_INODES_PER_CHUNK (NBBY * sizeof(xfs_inofree_t))
|
||||
#define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3)
|
||||
#define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1)
|
||||
#define XFS_INOBT_MASK(i) ((xfs_inofree_t)1 << (i))
|
||||
|
||||
static inline xfs_inofree_t xfs_inobt_maskn(int i, int n)
|
||||
{
|
||||
return ((n >= XFS_INODES_PER_CHUNK ? 0 : XFS_INOBT_MASK(n)) - 1) << i;
|
||||
}
|
||||
|
||||
/*
|
||||
* Data record structure
|
||||
*/
|
||||
typedef struct xfs_inobt_rec {
|
||||
__be32 ir_startino; /* starting inode number */
|
||||
__be32 ir_freecount; /* count of free inodes (set bits) */
|
||||
__be64 ir_free; /* free inode mask */
|
||||
} xfs_inobt_rec_t;
|
||||
|
||||
typedef struct xfs_inobt_rec_incore {
|
||||
xfs_agino_t ir_startino; /* starting inode number */
|
||||
__int32_t ir_freecount; /* count of free inodes (set bits) */
|
||||
xfs_inofree_t ir_free; /* free inode mask */
|
||||
} xfs_inobt_rec_incore_t;
|
||||
|
||||
|
||||
/*
|
||||
* Key structure
|
||||
*/
|
||||
typedef struct xfs_inobt_key {
|
||||
__be32 ir_startino; /* starting inode number */
|
||||
} xfs_inobt_key_t;
|
||||
|
||||
/* btree pointer type */
|
||||
typedef __be32 xfs_inobt_ptr_t;
|
||||
|
||||
/*
|
||||
* block numbers in the AG.
|
||||
*/
|
||||
#define XFS_IBT_BLOCK(mp) ((xfs_agblock_t)(XFS_CNT_BLOCK(mp) + 1))
|
||||
#define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1))
|
||||
|
||||
/*
|
||||
* Btree block header size depends on a superblock flag.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user