aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_ialloc_btree.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/xfs_ialloc_btree.h')
-rw-r--r--fs/xfs/xfs_ialloc_btree.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/fs/xfs/xfs_ialloc_btree.h b/fs/xfs/xfs_ialloc_btree.h
index fa12c85db340..37e5dd01a577 100644
--- a/fs/xfs/xfs_ialloc_btree.h
+++ b/fs/xfs/xfs_ialloc_btree.h
@@ -24,7 +24,6 @@
24 24
25struct xfs_buf; 25struct xfs_buf;
26struct xfs_btree_cur; 26struct xfs_btree_cur;
27struct xfs_btree_sblock;
28struct xfs_mount; 27struct xfs_mount;
29 28
30/* 29/*
@@ -70,11 +69,6 @@ typedef struct xfs_inobt_key {
70/* btree pointer type */ 69/* btree pointer type */
71typedef __be32 xfs_inobt_ptr_t; 70typedef __be32 xfs_inobt_ptr_t;
72 71
73/* btree block header type */
74typedef struct xfs_btree_sblock xfs_inobt_block_t;
75
76#define XFS_BUF_TO_INOBT_BLOCK(bp) ((xfs_inobt_block_t *)XFS_BUF_PTR(bp))
77
78/* 72/*
79 * Bit manipulations for ir_free. 73 * Bit manipulations for ir_free.
80 */ 74 */
@@ -96,6 +90,13 @@ typedef struct xfs_btree_sblock xfs_inobt_block_t;
96#define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1)) 90#define XFS_PREALLOC_BLOCKS(mp) ((xfs_agblock_t)(XFS_IBT_BLOCK(mp) + 1))
97 91
98/* 92/*
93 * Btree block header size depends on a superblock flag.
94 *
95 * (not quite yet, but soon)
96 */
97#define XFS_INOBT_BLOCK_LEN(mp) XFS_BTREE_SBLOCK_LEN
98
99/*
99 * Record, key, and pointer address macros for btree blocks. 100 * Record, key, and pointer address macros for btree blocks.
100 * 101 *
101 * (note that some of these may appear unused, but they are used in userspace) 102 * (note that some of these may appear unused, but they are used in userspace)
@@ -103,19 +104,19 @@ typedef struct xfs_btree_sblock xfs_inobt_block_t;
103#define XFS_INOBT_REC_ADDR(mp, block, index) \ 104#define XFS_INOBT_REC_ADDR(mp, block, index) \
104 ((xfs_inobt_rec_t *) \ 105 ((xfs_inobt_rec_t *) \
105 ((char *)(block) + \ 106 ((char *)(block) + \
106 sizeof(struct xfs_btree_sblock) + \ 107 XFS_INOBT_BLOCK_LEN(mp) + \
107 (((index) - 1) * sizeof(xfs_inobt_rec_t)))) 108 (((index) - 1) * sizeof(xfs_inobt_rec_t))))
108 109
109#define XFS_INOBT_KEY_ADDR(mp, block, index) \ 110#define XFS_INOBT_KEY_ADDR(mp, block, index) \
110 ((xfs_inobt_key_t *) \ 111 ((xfs_inobt_key_t *) \
111 ((char *)(block) + \ 112 ((char *)(block) + \
112 sizeof(struct xfs_btree_sblock) + \ 113 XFS_INOBT_BLOCK_LEN(mp) + \
113 ((index) - 1) * sizeof(xfs_inobt_key_t))) 114 ((index) - 1) * sizeof(xfs_inobt_key_t)))
114 115
115#define XFS_INOBT_PTR_ADDR(mp, block, index, maxrecs) \ 116#define XFS_INOBT_PTR_ADDR(mp, block, index, maxrecs) \
116 ((xfs_inobt_ptr_t *) \ 117 ((xfs_inobt_ptr_t *) \
117 ((char *)(block) + \ 118 ((char *)(block) + \
118 sizeof(struct xfs_btree_sblock) + \ 119 XFS_INOBT_BLOCK_LEN(mp) + \
119 (maxrecs) * sizeof(xfs_inobt_key_t) + \ 120 (maxrecs) * sizeof(xfs_inobt_key_t) + \
120 ((index) - 1) * sizeof(xfs_inobt_ptr_t))) 121 ((index) - 1) * sizeof(xfs_inobt_ptr_t)))
121 122