| struct journal_params { |
| __u32 jp_journal_1st_block; /* where does journal start from on its |
| * device */ |
| __u32 jp_journal_dev; /* journal device st_rdev */ |
| __u32 jp_journal_size; /* size of the journal */ |
| __u32 jp_journal_trans_max; /* max number of blocks in a transaction. */ |
| __u32 jp_journal_magic; /* random value made on fs creation (this |
| * was sb_journal_block_count) */ |
| __u32 jp_journal_max_batch; /* max number of blocks to batch into a |
| * trans */ |
| __u32 jp_journal_max_commit_age; /* in seconds, how old can an async |
| * commit be */ |
| __u32 jp_journal_max_trans_age; /* in seconds, how old can a transaction |
| * be */ |
| }; |
| |
| /* this is the super from 3.5.X, where X >= 10 */ |
| struct reiserfs_super_block_v1 |
| { |
| __u32 s_block_count; /* blocks count */ |
| __u32 s_free_blocks; /* free blocks count */ |
| __u32 s_root_block; /* root block number */ |
| struct journal_params s_journal; |
| __u16 s_blocksize; /* block size */ |
| __u16 s_oid_maxsize; /* max size of object id array, see |
| * get_objectid() commentary */ |
| __u16 s_oid_cursize; /* current size of object id array */ |
| __u16 s_umount_state; /* this is set to 1 when filesystem was |
| * umounted, to 2 - when not */ |
| char s_magic[10]; /* reiserfs magic string indicates that |
| * file system is reiserfs: |
| * "ReIsErFs" or "ReIsEr2Fs" or "ReIsEr3Fs" */ |
| __u16 s_fs_state; /* it is set to used by fsck to mark which |
| * phase of rebuilding is done */ |
| __u32 s_hash_function_code; /* indicate, what hash function is being use |
| * to sort names in a directory*/ |
| __u16 s_tree_height; /* height of disk tree */ |
| __u16 s_bmap_nr; /* amount of bitmap blocks needed to address |
| * each block of file system */ |
| __u16 s_version; /* this field is only reliable on filesystem |
| * with non-standard journal */ |
| __u16 s_reserved_for_journal; /* size in blocks of journal area on main |
| * device, we need to keep after |
| * making fs with non-standard journal */ |
| } __attribute__ ((__packed__)); |
| |
| /* this is the on disk super block */ |
| struct reiserfs_super_block |
| { |
| struct reiserfs_super_block_v1 s_v1; |
| __u32 s_inode_generation; |
| __u32 s_flags; /* Right now used only by inode-attributes, if enabled */ |
| unsigned char s_uuid[16]; /* filesystem unique identifier */ |
| unsigned char s_label[16]; /* filesystem volume label */ |
| char s_unused[88] ; /* zero filled by mkreiserfs and |
| * reiserfs_convert_objectid_map_v1() |
| * so any additions must be updated |
| * there as well. */ |
| } __attribute__ ((__packed__)); |
| |
| #define REISERFS_SUPER_MAGIC_STRING "ReIsErFs" |
| #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs" |
| #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs" |
| |
| #define SB_V1_DISK_SUPER_BLOCK(s) (&((s)->s_v1)) |
| #define REISERFS_BLOCKSIZE(s) \ |
| __le32_to_cpu((SB_V1_DISK_SUPER_BLOCK(s)->s_blocksize)) |
| #define REISERFS_BLOCK_COUNT(s) \ |
| __le32_to_cpu((SB_V1_DISK_SUPER_BLOCK(s)->s_block_count)) |
| #define REISERFS_MAGIC(s) \ |
| (SB_V1_DISK_SUPER_BLOCK(s)->s_magic) |