summaryrefslogtreecommitdiffstats
path: root/sys/fs
diff options
context:
space:
mode:
authorkevlo <kevlo@FreeBSD.org>2016-04-01 03:46:16 +0000
committerkevlo <kevlo@FreeBSD.org>2016-04-01 03:46:16 +0000
commitca4f2c5a4d9532f5c4c854b775f1d6a70665231a (patch)
treeb8c2674941211576a6a7e37c4d3d79ed94cae421 /sys/fs
parent3c07b218c4c87b0e1dbf8ce585f7fad4d49f2c09 (diff)
downloadFreeBSD-src-ca4f2c5a4d9532f5c4c854b775f1d6a70665231a.zip
FreeBSD-src-ca4f2c5a4d9532f5c4c854b775f1d6a70665231a.tar.gz
MFC r297335:
Update superblock and inode structs for ext4. Reviewed by: pfg
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/ext2fs/ext2_dinode.h1
-rw-r--r--sys/fs/ext2fs/ext2fs.h63
2 files changed, 47 insertions, 17 deletions
diff --git a/sys/fs/ext2fs/ext2_dinode.h b/sys/fs/ext2fs/ext2_dinode.h
index a541f12..756f8bd 100644
--- a/sys/fs/ext2fs/ext2_dinode.h
+++ b/sys/fs/ext2fs/ext2_dinode.h
@@ -131,6 +131,7 @@ struct ext2fs_dinode {
uint32_t e2di_crtime; /* 144: Creation (birth)time */
uint32_t e2di_crtime_extra; /* 148: Extra creation (birth)time */
uint32_t e2di_version_hi; /* 152: High bits of inode version */
+ uint32_t e2di_projid; /* 156: Project ID */
};
#endif /* !_FS_EXT2FS_EXT2_DINODE_H_ */
diff --git a/sys/fs/ext2fs/ext2fs.h b/sys/fs/ext2fs/ext2fs.h
index 4c6f05a..31359fa 100644
--- a/sys/fs/ext2fs/ext2fs.h
+++ b/sys/fs/ext2fs/ext2fs.h
@@ -72,7 +72,7 @@ struct ext2fs {
uint32_t e2fs_first_ino; /* first non-reserved inode */
uint16_t e2fs_inode_size; /* size of inode structure */
uint16_t e2fs_block_group_nr; /* block grp number of this sblk*/
- uint32_t e2fs_features_compat; /* compatible feature set */
+ uint32_t e2fs_features_compat; /* compatible feature set */
uint32_t e2fs_features_incompat; /* incompatible feature set */
uint32_t e2fs_features_rocompat; /* RO-compatible feature set */
uint8_t e2fs_uuid[16]; /* 128-bit uuid for volume */
@@ -88,25 +88,54 @@ struct ext2fs {
uint32_t e3fs_last_orphan; /* start of list of inodes to delete */
uint32_t e3fs_hash_seed[4]; /* HTREE hash seed */
char e3fs_def_hash_version; /* Default hash version to use */
- char e3fs_reserved_char_pad;
+ char e3fs_jnl_backup_type;
+ uint16_t e3fs_desc_size; /* size of group descriptor */
uint32_t e3fs_default_mount_opts;
uint32_t e3fs_first_meta_bg; /* First metablock block group */
- uint32_t e3fs_mkfs_time; /* when the fs was created */
- uint32_t e3fs_jnl_blks[17]; /* backup of the journal inode */
- uint32_t e4fs_bcount_hi; /* block count */
- uint32_t e4fs_rbcount_hi; /* reserved blocks count */
- uint32_t e4fs_fbcount_hi; /* free blocks count */
- uint16_t e4fs_min_extra_isize;/* all inodes have at least some bytes */
+ uint32_t e3fs_mkfs_time; /* when the fs was created */
+ uint32_t e3fs_jnl_blks[17]; /* backup of the journal inode */
+ uint32_t e4fs_bcount_hi; /* high bits of blocks count */
+ uint32_t e4fs_rbcount_hi; /* high bits of reserved blocks count */
+ uint32_t e4fs_fbcount_hi; /* high bits of free blocks count */
+ uint16_t e4fs_min_extra_isize; /* all inodes have at least some bytes */
uint16_t e4fs_want_extra_isize; /* inodes must reserve some bytes */
- uint32_t e4fs_flags; /* miscellaneous flags */
- uint16_t e4fs_raid_stride; /* RAID stride */
- uint16_t e4fs_mmpintv; /* number of seconds to wait in MMP checking */
- uint64_t e4fs_mmpblk; /* block for multi-mount protection */
- uint32_t e4fs_raid_stripe_wid;/* blocks on all data disks (N * stride) */
- uint8_t e4fs_log_gpf; /* FLEX_BG group size */
- uint8_t e4fs_char_pad2;
- uint16_t e4fs_pad;
- uint32_t reserved2[162]; /* Padding to the end of the block */
+ uint32_t e4fs_flags; /* miscellaneous flags */
+ uint16_t e4fs_raid_stride; /* RAID stride */
+ uint16_t e4fs_mmpintv; /* number of seconds to wait in MMP checking */
+ uint64_t e4fs_mmpblk; /* block for multi-mount protection */
+ uint32_t e4fs_raid_stripe_wid; /* blocks on all data disks (N * stride) */
+ uint8_t e4fs_log_gpf; /* FLEX_BG group size */
+ uint8_t e4fs_chksum_type; /* metadata checksum algorithm used */
+ uint8_t e4fs_encrypt; /* versioning level for encryption */
+ uint8_t e4fs_reserved_pad;
+ uint64_t e4fs_kbytes_written; /* number of lifetime kilobytes */
+ uint32_t e4fs_snapinum; /* inode number of active snapshot */
+ uint32_t e4fs_snapid; /* sequential ID of active snapshot */
+ uint64_t e4fs_snaprbcount; /* reserved blocks for active snapshot */
+ uint32_t e4fs_snaplist; /* inode number for on-disk snapshot */
+ uint32_t e4fs_errcount; /* number of file system errors */
+ uint32_t e4fs_first_errtime; /* first time an error happened */
+ uint32_t e4fs_first_errino; /* inode involved in first error */
+ uint64_t e4fs_first_errblk; /* block involved of first error */
+ uint8_t e4fs_first_errfunc[32]; /* function where error happened */
+ uint32_t e4fs_first_errline; /* line number where error happened */
+ uint32_t e4fs_last_errtime; /* most recent time of an error */
+ uint32_t e4fs_last_errino; /* inode involved in last error */
+ uint32_t e4fs_last_errline; /* line number where error happened */
+ uint64_t e4fs_last_errblk; /* block involved of last error */
+ uint8_t e4fs_last_errfunc[32]; /* function where error happened */
+ uint8_t e4fs_mount_opts[64];
+ uint32_t e4fs_usrquota_inum; /* inode for tracking user quota */
+ uint32_t e4fs_grpquota_inum; /* inode for tracking group quota */
+ uint32_t e4fs_overhead_clusters; /* overhead blocks/clusters */
+ uint32_t e4fs_backup_bgs[2]; /* groups with sparse_super2 SBs */
+ uint8_t e4fs_encrypt_algos[4]; /* encryption algorithms in use */
+ uint8_t e4fs_encrypt_pw_salt[16]; /* salt used for string2key */
+ uint32_t e4fs_lpf_ino; /* location of the lost+found inode */
+ uint32_t e4fs_proj_quota_inum; /* inode for tracking project quota */
+ uint32_t e4fs_chksum_seed; /* checksum seed */
+ uint32_t e4fs_reserved[98]; /* padding to the end of the block */
+ uint32_t e4fs_sbchksum; /* superblock checksum */
};
/*
OpenPOWER on IntegriCloud