19
19
static_assert((value) == (expected), \
20
20
"XFS: value of " #value " is wrong, expected " #expected)
21
21
22
+ #define XFS_CHECK_SB_OFFSET (field , offset ) \
23
+ XFS_CHECK_OFFSET(struct xfs_dsb, field, offset); \
24
+ XFS_CHECK_OFFSET(struct xfs_sb, field, offset);
25
+
22
26
static inline void __init
23
27
xfs_check_ondisk_structs (void )
24
28
{
@@ -31,7 +35,6 @@ xfs_check_ondisk_structs(void)
31
35
XFS_CHECK_STRUCT_SIZE (struct xfs_dinode , 176 );
32
36
XFS_CHECK_STRUCT_SIZE (struct xfs_disk_dquot , 104 );
33
37
XFS_CHECK_STRUCT_SIZE (struct xfs_dqblk , 136 );
34
- XFS_CHECK_STRUCT_SIZE (struct xfs_dsb , 288 );
35
38
XFS_CHECK_STRUCT_SIZE (struct xfs_dsymlink_hdr , 56 );
36
39
XFS_CHECK_STRUCT_SIZE (xfs_timestamp_t , 8 );
37
40
XFS_CHECK_STRUCT_SIZE (struct xfs_legacy_timestamp , 8 );
@@ -55,6 +58,7 @@ xfs_check_ondisk_structs(void)
55
58
XFS_CHECK_STRUCT_SIZE (xfs_inobt_ptr_t , 4 );
56
59
XFS_CHECK_STRUCT_SIZE (xfs_refcount_ptr_t , 4 );
57
60
XFS_CHECK_STRUCT_SIZE (xfs_rmap_ptr_t , 4 );
61
+ XFS_CHECK_STRUCT_SIZE (xfs_bmdr_key_t , 8 );
58
62
59
63
/* dir/attr trees */
60
64
XFS_CHECK_STRUCT_SIZE (struct xfs_attr3_leaf_hdr , 80 );
@@ -89,7 +93,6 @@ xfs_check_ondisk_structs(void)
89
93
XFS_CHECK_STRUCT_SIZE(struct xfs_attr_leaf_name_remote, 12);
90
94
*/
91
95
92
- XFS_CHECK_OFFSET (struct xfs_dsb , sb_crc , 224 );
93
96
XFS_CHECK_OFFSET (struct xfs_attr_leaf_name_local , valuelen , 0 );
94
97
XFS_CHECK_OFFSET (struct xfs_attr_leaf_name_local , namelen , 2 );
95
98
XFS_CHECK_OFFSET (struct xfs_attr_leaf_name_local , nameval , 3 );
@@ -126,6 +129,20 @@ xfs_check_ondisk_structs(void)
126
129
XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_sf_hdr , 10 );
127
130
XFS_CHECK_STRUCT_SIZE (struct xfs_parent_rec , 12 );
128
131
132
+ /* ondisk dir/attr structures from xfs/122 */
133
+ XFS_CHECK_STRUCT_SIZE (struct xfs_attr_sf_entry , 3 );
134
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_data_free , 4 );
135
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_data_hdr , 16 );
136
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_data_unused , 6 );
137
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_free , 16 );
138
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_free_hdr , 16 );
139
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_leaf , 16 );
140
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_leaf_entry , 8 );
141
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_leaf_hdr , 16 );
142
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_leaf_tail , 4 );
143
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_sf_entry , 3 );
144
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dir2_sf_hdr , 10 );
145
+
129
146
/* log structures */
130
147
XFS_CHECK_STRUCT_SIZE (struct xfs_buf_log_format , 88 );
131
148
XFS_CHECK_STRUCT_SIZE (struct xfs_dq_logformat , 24 );
@@ -161,6 +178,11 @@ xfs_check_ondisk_structs(void)
161
178
XFS_CHECK_OFFSET (struct xfs_efi_log_format_32 , efi_extents , 16 );
162
179
XFS_CHECK_OFFSET (struct xfs_efi_log_format_64 , efi_extents , 16 );
163
180
181
+ /* ondisk log structures from xfs/122 */
182
+ XFS_CHECK_STRUCT_SIZE (struct xfs_unmount_log_format , 8 );
183
+ XFS_CHECK_STRUCT_SIZE (struct xfs_xmd_log_format , 16 );
184
+ XFS_CHECK_STRUCT_SIZE (struct xfs_xmi_log_format , 88 );
185
+
164
186
/* parent pointer ioctls */
165
187
XFS_CHECK_STRUCT_SIZE (struct xfs_getparents_rec , 32 );
166
188
XFS_CHECK_STRUCT_SIZE (struct xfs_getparents , 40 );
@@ -205,6 +227,70 @@ xfs_check_ondisk_structs(void)
205
227
XFS_CHECK_VALUE (XFS_DQ_BIGTIME_EXPIRY_MIN << XFS_DQ_BIGTIME_SHIFT , 4 );
206
228
XFS_CHECK_VALUE (XFS_DQ_BIGTIME_EXPIRY_MAX << XFS_DQ_BIGTIME_SHIFT ,
207
229
16299260424LL );
230
+
231
+ /* superblock field checks we got from xfs/122 */
232
+ XFS_CHECK_STRUCT_SIZE (struct xfs_dsb , 288 );
233
+ XFS_CHECK_STRUCT_SIZE (struct xfs_sb , 288 );
234
+ XFS_CHECK_SB_OFFSET (sb_magicnum , 0 );
235
+ XFS_CHECK_SB_OFFSET (sb_blocksize , 4 );
236
+ XFS_CHECK_SB_OFFSET (sb_dblocks , 8 );
237
+ XFS_CHECK_SB_OFFSET (sb_rblocks , 16 );
238
+ XFS_CHECK_SB_OFFSET (sb_rextents , 24 );
239
+ XFS_CHECK_SB_OFFSET (sb_uuid , 32 );
240
+ XFS_CHECK_SB_OFFSET (sb_logstart , 48 );
241
+ XFS_CHECK_SB_OFFSET (sb_rootino , 56 );
242
+ XFS_CHECK_SB_OFFSET (sb_rbmino , 64 );
243
+ XFS_CHECK_SB_OFFSET (sb_rsumino , 72 );
244
+ XFS_CHECK_SB_OFFSET (sb_rextsize , 80 );
245
+ XFS_CHECK_SB_OFFSET (sb_agblocks , 84 );
246
+ XFS_CHECK_SB_OFFSET (sb_agcount , 88 );
247
+ XFS_CHECK_SB_OFFSET (sb_rbmblocks , 92 );
248
+ XFS_CHECK_SB_OFFSET (sb_logblocks , 96 );
249
+ XFS_CHECK_SB_OFFSET (sb_versionnum , 100 );
250
+ XFS_CHECK_SB_OFFSET (sb_sectsize , 102 );
251
+ XFS_CHECK_SB_OFFSET (sb_inodesize , 104 );
252
+ XFS_CHECK_SB_OFFSET (sb_inopblock , 106 );
253
+ XFS_CHECK_SB_OFFSET (sb_blocklog , 120 );
254
+ XFS_CHECK_SB_OFFSET (sb_fname [12 ], 120 );
255
+ XFS_CHECK_SB_OFFSET (sb_sectlog , 121 );
256
+ XFS_CHECK_SB_OFFSET (sb_inodelog , 122 );
257
+ XFS_CHECK_SB_OFFSET (sb_inopblog , 123 );
258
+ XFS_CHECK_SB_OFFSET (sb_agblklog , 124 );
259
+ XFS_CHECK_SB_OFFSET (sb_rextslog , 125 );
260
+ XFS_CHECK_SB_OFFSET (sb_inprogress , 126 );
261
+ XFS_CHECK_SB_OFFSET (sb_imax_pct , 127 );
262
+ XFS_CHECK_SB_OFFSET (sb_icount , 128 );
263
+ XFS_CHECK_SB_OFFSET (sb_ifree , 136 );
264
+ XFS_CHECK_SB_OFFSET (sb_fdblocks , 144 );
265
+ XFS_CHECK_SB_OFFSET (sb_frextents , 152 );
266
+ XFS_CHECK_SB_OFFSET (sb_uquotino , 160 );
267
+ XFS_CHECK_SB_OFFSET (sb_gquotino , 168 );
268
+ XFS_CHECK_SB_OFFSET (sb_qflags , 176 );
269
+ XFS_CHECK_SB_OFFSET (sb_flags , 178 );
270
+ XFS_CHECK_SB_OFFSET (sb_shared_vn , 179 );
271
+ XFS_CHECK_SB_OFFSET (sb_inoalignmt , 180 );
272
+ XFS_CHECK_SB_OFFSET (sb_unit , 184 );
273
+ XFS_CHECK_SB_OFFSET (sb_width , 188 );
274
+ XFS_CHECK_SB_OFFSET (sb_dirblklog , 192 );
275
+ XFS_CHECK_SB_OFFSET (sb_logsectlog , 193 );
276
+ XFS_CHECK_SB_OFFSET (sb_logsectsize , 194 );
277
+ XFS_CHECK_SB_OFFSET (sb_logsunit , 196 );
278
+ XFS_CHECK_SB_OFFSET (sb_features2 , 200 );
279
+ XFS_CHECK_SB_OFFSET (sb_bad_features2 , 204 );
280
+ XFS_CHECK_SB_OFFSET (sb_features_compat , 208 );
281
+ XFS_CHECK_SB_OFFSET (sb_features_ro_compat , 212 );
282
+ XFS_CHECK_SB_OFFSET (sb_features_incompat , 216 );
283
+ XFS_CHECK_SB_OFFSET (sb_features_log_incompat , 220 );
284
+ XFS_CHECK_SB_OFFSET (sb_crc , 224 );
285
+ XFS_CHECK_SB_OFFSET (sb_spino_align , 228 );
286
+ XFS_CHECK_SB_OFFSET (sb_pquotino , 232 );
287
+ XFS_CHECK_SB_OFFSET (sb_lsn , 240 );
288
+ XFS_CHECK_SB_OFFSET (sb_meta_uuid , 248 );
289
+ XFS_CHECK_SB_OFFSET (sb_metadirino , 264 );
290
+ XFS_CHECK_SB_OFFSET (sb_rgcount , 272 );
291
+ XFS_CHECK_SB_OFFSET (sb_rgextents , 276 );
292
+ XFS_CHECK_SB_OFFSET (sb_rgblklog , 280 );
293
+ XFS_CHECK_SB_OFFSET (sb_pad , 281 );
208
294
}
209
295
210
296
#endif /* __XFS_ONDISK_H */
0 commit comments