[PATCH, E2FSPROGS] On-disk format definition for 64-bit support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After thinking about it some more, and looking at the code committed
into the kernel git tree, I've changed my mind and agree that the
extending current group descriptor is simpler than having two versions
of the structure depending on the size of the group descriptor.

Does everyone agree this is what the 64-bit on-desk definition should
be?  Should 64-bit support also imply BIG_BG support?

						- Ted

- EXT4_FEATURE_INCOMPAT_64BIT (0x0080) - support for 64-bit block count
  fields in the superblock (s_blocks_count_hi, s_free_blocks_count_hi),
  large group descriptors (s_desc_size), extents with high 16 bits
  (ee_start_hi, ei_leaf_hi), inode ACL (i_file_acl_hi).  May also grow
  to encompass the previously proposed BIG_BG.

Signed-off-by: "Theodore Ts'o" <tytso@xxxxxxx>

Index: e2fsprogs/lib/ext2fs/ext2_fs.h
===================================================================
--- e2fsprogs.orig/lib/ext2fs/ext2_fs.h	2006-10-18 00:33:56.000000000 -0400
+++ e2fsprogs/lib/ext2fs/ext2_fs.h	2006-10-18 01:08:06.000000000 -0400
@@ -147,6 +147,25 @@
 	__u32	bg_reserved[3];
 };
 
+struct ext4_group_desc
+{
+	__u32	bg_block_bitmap;		/* Blocks bitmap block */
+	__u32	bg_inode_bitmap;		/* Inodes bitmap block */
+	__u32	bg_inode_table;			/* Inodes table block */
+	__u16	bg_free_blocks_count;		/* Free blocks count */
+	__u16	bg_free_inodes_count;		/* Free inodes count */
+	__u16	bg_used_dirs_count;		/* Directories count */
+	__u16	bg_flags;
+	__u32	bg_reserved[3];
+	__u32	bg_block_bitmap_hi;		/* Blocks bitmap block MSB */
+	__u32	bg_inode_bitmap_hi;		/* Inodes bitmap block MSB */
+	__u32	bg_inode_table_hi;		/* Inodes table block MSB */
+	__u16	bg_free_blocks_count_hi;	/* Free blocks count MSB */
+	__u16	bg_free_inodes_count_hi;	/* Free inodes count MSB */
+	__u16	bg_used_dirs_count_hi;		/* Directories count MSB */
+	__u32	bg_reserved2[3];
+};
+
 #define EXT2_BG_INODE_UNINIT	0x0001 /* Inode table/bitmap not initialized */
 #define EXT2_BG_BLOCK_UNINIT	0x0002 /* Block bitmap not initialized */
 
@@ -524,12 +543,15 @@
 	__u32	s_hash_seed[4];		/* HTREE hash seed */
 	__u8	s_def_hash_version;	/* Default hash version to use */
 	__u8	s_jnl_backup_type; 	/* Default type of journal backup */
-	__u16	s_reserved_word_pad;
+	__u16	s_desc_size;		/* Group desc. size: INCOMPAT_64BIT */
 	__u32	s_default_mount_opts;
 	__u32	s_first_meta_bg;	/* First metablock group */
 	__u32	s_mkfs_time;		/* When the filesystem was created */
 	__u32	s_jnl_blocks[17]; 	/* Backup of the journal inode */
-	__u32	s_reserved[172];	/* Padding to the end of the block */
+	__u32	s_blocks_count_hi;	/* Blocks count high 32bits */
+	__u32	s_r_blocks_count_hi;	/* Reserved blocks count high 32 bits*/
+	__u32	s_free_blocks_hi; 	/* Free blocks count */
+	__u32	s_reserved[169];	/* Padding to the end of the block */
 };
 
 /*
@@ -586,6 +608,7 @@
 #define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV	0x0008 /* Journal device */
 #define EXT2_FEATURE_INCOMPAT_META_BG		0x0010
 #define EXT3_FEATURE_INCOMPAT_EXTENTS		0x0040
+#define EXT4_FEATURE_INCOMPAT_64BIT		0x0080
 
 
 #define EXT2_FEATURE_COMPAT_SUPP	0
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux