svn commit: r297335 - head/sys/fs/ext2fs

Kevin Lo kevlo at FreeBSD.org
Mon Mar 28 07:44:56 UTC 2016


Author: kevlo
Date: Mon Mar 28 07:44:55 2016
New Revision: 297335
URL: https://svnweb.freebsd.org/changeset/base/297335

Log:
  Update superblock and inode structs for ext4.
  
  Reviewed by:	pfg

Modified:
  head/sys/fs/ext2fs/ext2_dinode.h
  head/sys/fs/ext2fs/ext2fs.h

Modified: head/sys/fs/ext2fs/ext2_dinode.h
==============================================================================
--- head/sys/fs/ext2fs/ext2_dinode.h	Mon Mar 28 07:36:54 2016	(r297334)
+++ head/sys/fs/ext2fs/ext2_dinode.h	Mon Mar 28 07:44:55 2016	(r297335)
@@ -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_ */

Modified: head/sys/fs/ext2fs/ext2fs.h
==============================================================================
--- head/sys/fs/ext2fs/ext2fs.h	Mon Mar 28 07:36:54 2016	(r297334)
+++ head/sys/fs/ext2fs/ext2fs.h	Mon Mar 28 07:44:55 2016	(r297335)
@@ -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 */
 };
 
 /*


More information about the svn-src-head mailing list