blob: 1b6926b9b0227b4f7bf7bcbe1586384b5f2c89ba [file] [log] [blame]
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)