.. | .. |
---|
25 | 25 | extern const struct xfs_buf_ops xfs_agi_buf_ops; |
---|
26 | 26 | extern const struct xfs_buf_ops xfs_agf_buf_ops; |
---|
27 | 27 | extern const struct xfs_buf_ops xfs_agfl_buf_ops; |
---|
28 | | -extern const struct xfs_buf_ops xfs_allocbt_buf_ops; |
---|
| 28 | +extern const struct xfs_buf_ops xfs_bnobt_buf_ops; |
---|
| 29 | +extern const struct xfs_buf_ops xfs_cntbt_buf_ops; |
---|
29 | 30 | extern const struct xfs_buf_ops xfs_rmapbt_buf_ops; |
---|
30 | 31 | extern const struct xfs_buf_ops xfs_refcountbt_buf_ops; |
---|
31 | 32 | extern const struct xfs_buf_ops xfs_attr3_leaf_buf_ops; |
---|
.. | .. |
---|
36 | 37 | extern const struct xfs_buf_ops xfs_symlink_buf_ops; |
---|
37 | 38 | extern const struct xfs_buf_ops xfs_agi_buf_ops; |
---|
38 | 39 | extern const struct xfs_buf_ops xfs_inobt_buf_ops; |
---|
| 40 | +extern const struct xfs_buf_ops xfs_finobt_buf_ops; |
---|
39 | 41 | extern const struct xfs_buf_ops xfs_inode_buf_ops; |
---|
40 | 42 | extern const struct xfs_buf_ops xfs_inode_buf_ra_ops; |
---|
41 | 43 | extern const struct xfs_buf_ops xfs_dquot_buf_ops; |
---|
.. | .. |
---|
63 | 65 | #define XFS_TRANS_DQ_DIRTY 0x10 /* at least one dquot in trx dirty */ |
---|
64 | 66 | #define XFS_TRANS_RESERVE 0x20 /* OK to use reserved data blocks */ |
---|
65 | 67 | #define XFS_TRANS_NO_WRITECOUNT 0x40 /* do not elevate SB writecount */ |
---|
66 | | -#define XFS_TRANS_NOFS 0x80 /* pass KM_NOFS to kmem_alloc */ |
---|
| 68 | +#define XFS_TRANS_RES_FDBLKS 0x80 /* reserve newly freed blocks */ |
---|
67 | 69 | /* |
---|
68 | 70 | * LOWMODE is used by the allocator to activate the lowspace algorithm - when |
---|
69 | 71 | * free space is running low the extent allocator may choose to allocate an |
---|
.. | .. |
---|
134 | 136 | struct xfs_inode *ip, struct xfs_ifork *ifp); |
---|
135 | 137 | xfs_failaddr_t xfs_symlink_shortform_verify(struct xfs_inode *ip); |
---|
136 | 138 | |
---|
| 139 | +/* Computed inode geometry for the filesystem. */ |
---|
| 140 | +struct xfs_ino_geometry { |
---|
| 141 | + /* Maximum inode count in this filesystem. */ |
---|
| 142 | + uint64_t maxicount; |
---|
| 143 | + |
---|
| 144 | + /* Actual inode cluster buffer size, in bytes. */ |
---|
| 145 | + unsigned int inode_cluster_size; |
---|
| 146 | + |
---|
| 147 | + /* |
---|
| 148 | + * Desired inode cluster buffer size, in bytes. This value is not |
---|
| 149 | + * rounded up to at least one filesystem block, which is necessary for |
---|
| 150 | + * the sole purpose of validating sb_spino_align. Runtime code must |
---|
| 151 | + * only ever use inode_cluster_size. |
---|
| 152 | + */ |
---|
| 153 | + unsigned int inode_cluster_size_raw; |
---|
| 154 | + |
---|
| 155 | + /* Inode cluster sizes, adjusted to be at least 1 fsb. */ |
---|
| 156 | + unsigned int inodes_per_cluster; |
---|
| 157 | + unsigned int blocks_per_cluster; |
---|
| 158 | + |
---|
| 159 | + /* Inode cluster alignment. */ |
---|
| 160 | + unsigned int cluster_align; |
---|
| 161 | + unsigned int cluster_align_inodes; |
---|
| 162 | + unsigned int inoalign_mask; /* mask sb_inoalignmt if used */ |
---|
| 163 | + |
---|
| 164 | + unsigned int inobt_mxr[2]; /* max inobt btree records */ |
---|
| 165 | + unsigned int inobt_mnr[2]; /* min inobt btree records */ |
---|
| 166 | + unsigned int inobt_maxlevels; /* max inobt btree levels. */ |
---|
| 167 | + |
---|
| 168 | + /* Size of inode allocations under normal operation. */ |
---|
| 169 | + unsigned int ialloc_inos; |
---|
| 170 | + unsigned int ialloc_blks; |
---|
| 171 | + |
---|
| 172 | + /* Minimum inode blocks for a sparse allocation. */ |
---|
| 173 | + unsigned int ialloc_min_blks; |
---|
| 174 | + |
---|
| 175 | + /* stripe unit inode alignment */ |
---|
| 176 | + unsigned int ialloc_align; |
---|
| 177 | + |
---|
| 178 | + unsigned int agino_log; /* #bits for agino in inum */ |
---|
| 179 | + |
---|
| 180 | + /* precomputed value for di_flags2 */ |
---|
| 181 | + uint64_t new_diflags2; |
---|
| 182 | +}; |
---|
| 183 | + |
---|
137 | 184 | #endif /* __XFS_SHARED_H__ */ |
---|