aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_ag.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_ag.h')
-rw-r--r--fs/xfs/xfs_ag.h58
1 files changed, 28 insertions, 30 deletions
diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h
index 8d055593fee4..a96e2ffce0cc 100644
--- a/fs/xfs/xfs_ag.h
+++ b/fs/xfs/xfs_ag.h
@@ -48,27 +48,26 @@ struct xfs_trans;
48 * are > 64k, our value cannot be confused for an EFS superblock's. 48 * are > 64k, our value cannot be confused for an EFS superblock's.
49 */ 49 */
50 50
51typedef struct xfs_agf 51typedef struct xfs_agf {
52{
53 /* 52 /*
54 * Common allocation group header information 53 * Common allocation group header information
55 */ 54 */
56 __uint32_t agf_magicnum; /* magic number == XFS_AGF_MAGIC */ 55 __be32 agf_magicnum; /* magic number == XFS_AGF_MAGIC */
57 __uint32_t agf_versionnum; /* header version == XFS_AGF_VERSION */ 56 __be32 agf_versionnum; /* header version == XFS_AGF_VERSION */
58 xfs_agnumber_t agf_seqno; /* sequence # starting from 0 */ 57 __be32 agf_seqno; /* sequence # starting from 0 */
59 xfs_agblock_t agf_length; /* size in blocks of a.g. */ 58 __be32 agf_length; /* size in blocks of a.g. */
60 /* 59 /*
61 * Freespace information 60 * Freespace information
62 */ 61 */
63 xfs_agblock_t agf_roots[XFS_BTNUM_AGF]; /* root blocks */ 62 __be32 agf_roots[XFS_BTNUM_AGF]; /* root blocks */
64 __uint32_t agf_spare0; /* spare field */ 63 __be32 agf_spare0; /* spare field */
65 __uint32_t agf_levels[XFS_BTNUM_AGF]; /* btree levels */ 64 __be32 agf_levels[XFS_BTNUM_AGF]; /* btree levels */
66 __uint32_t agf_spare1; /* spare field */ 65 __be32 agf_spare1; /* spare field */
67 __uint32_t agf_flfirst; /* first freelist block's index */ 66 __be32 agf_flfirst; /* first freelist block's index */
68 __uint32_t agf_fllast; /* last freelist block's index */ 67 __be32 agf_fllast; /* last freelist block's index */
69 __uint32_t agf_flcount; /* count of blocks in freelist */ 68 __be32 agf_flcount; /* count of blocks in freelist */
70 xfs_extlen_t agf_freeblks; /* total free blocks */ 69 __be32 agf_freeblks; /* total free blocks */
71 xfs_extlen_t agf_longest; /* longest free space */ 70 __be32 agf_longest; /* longest free space */
72} xfs_agf_t; 71} xfs_agf_t;
73 72
74#define XFS_AGF_MAGICNUM 0x00000001 73#define XFS_AGF_MAGICNUM 0x00000001
@@ -96,31 +95,30 @@ typedef struct xfs_agf
96 */ 95 */
97#define XFS_AGI_UNLINKED_BUCKETS 64 96#define XFS_AGI_UNLINKED_BUCKETS 64
98 97
99typedef struct xfs_agi 98typedef struct xfs_agi {
100{
101 /* 99 /*
102 * Common allocation group header information 100 * Common allocation group header information
103 */ 101 */
104 __uint32_t agi_magicnum; /* magic number == XFS_AGI_MAGIC */ 102 __be32 agi_magicnum; /* magic number == XFS_AGI_MAGIC */
105 __uint32_t agi_versionnum; /* header version == XFS_AGI_VERSION */ 103 __be32 agi_versionnum; /* header version == XFS_AGI_VERSION */
106 xfs_agnumber_t agi_seqno; /* sequence # starting from 0 */ 104 __be32 agi_seqno; /* sequence # starting from 0 */
107 xfs_agblock_t agi_length; /* size in blocks of a.g. */ 105 __be32 agi_length; /* size in blocks of a.g. */
108 /* 106 /*
109 * Inode information 107 * Inode information
110 * Inodes are mapped by interpreting the inode number, so no 108 * Inodes are mapped by interpreting the inode number, so no
111 * mapping data is needed here. 109 * mapping data is needed here.
112 */ 110 */
113 xfs_agino_t agi_count; /* count of allocated inodes */ 111 __be32 agi_count; /* count of allocated inodes */
114 xfs_agblock_t agi_root; /* root of inode btree */ 112 __be32 agi_root; /* root of inode btree */
115 __uint32_t agi_level; /* levels in inode btree */ 113 __be32 agi_level; /* levels in inode btree */
116 xfs_agino_t agi_freecount; /* number of free inodes */ 114 __be32 agi_freecount; /* number of free inodes */
117 xfs_agino_t agi_newino; /* new inode just allocated */ 115 __be32 agi_newino; /* new inode just allocated */
118 xfs_agino_t agi_dirino; /* last directory inode chunk */ 116 __be32 agi_dirino; /* last directory inode chunk */
119 /* 117 /*
120 * Hash table of inodes which have been unlinked but are 118 * Hash table of inodes which have been unlinked but are
121 * still being referenced. 119 * still being referenced.
122 */ 120 */
123 xfs_agino_t agi_unlinked[XFS_AGI_UNLINKED_BUCKETS]; 121 __be32 agi_unlinked[XFS_AGI_UNLINKED_BUCKETS];
124} xfs_agi_t; 122} xfs_agi_t;
125 123
126#define XFS_AGI_MAGICNUM 0x00000001 124#define XFS_AGI_MAGICNUM 0x00000001
@@ -201,8 +199,8 @@ typedef struct xfs_perag
201 (MIN(bl + 1, XFS_AG_MAXLEVELS(mp)) + MIN(cl + 1, XFS_AG_MAXLEVELS(mp))) 199 (MIN(bl + 1, XFS_AG_MAXLEVELS(mp)) + MIN(cl + 1, XFS_AG_MAXLEVELS(mp)))
202#define XFS_MIN_FREELIST(a,mp) \ 200#define XFS_MIN_FREELIST(a,mp) \
203 (XFS_MIN_FREELIST_RAW( \ 201 (XFS_MIN_FREELIST_RAW( \
204 INT_GET((a)->agf_levels[XFS_BTNUM_BNOi], ARCH_CONVERT), \ 202 be32_to_cpu((a)->agf_levels[XFS_BTNUM_BNOi]), \
205 INT_GET((a)->agf_levels[XFS_BTNUM_CNTi], ARCH_CONVERT), mp)) 203 be32_to_cpu((a)->agf_levels[XFS_BTNUM_CNTi]), mp))
206#define XFS_MIN_FREELIST_PAG(pag,mp) \ 204#define XFS_MIN_FREELIST_PAG(pag,mp) \
207 (XFS_MIN_FREELIST_RAW( \ 205 (XFS_MIN_FREELIST_RAW( \
208 (uint_t)(pag)->pagf_levels[XFS_BTNUM_BNOi], \ 206 (uint_t)(pag)->pagf_levels[XFS_BTNUM_BNOi], \