aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlexandre Ratchov <alexandre.ratchov@bull.net>2006-10-11 04:21:14 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-11 14:14:18 -0400
commit0d1ee42f27d30eed1659f3e85bcbbc7b3711f61f (patch)
tree9477b1b1813e67e9a0a06af13c91a34c23c42bc8 /include/linux
parent18eba7aae080d4a5c0d850ea810e83d11f0a8d77 (diff)
[PATCH] ext4: allow larger descriptor size
make block group descriptor larger. Signed-off-by: Alexandre Ratchov <alexandre.ratchov@bull.net> Signed-off-by: Dave Kleikamp <shaggy@austin.ibm.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ext4_fs.h9
-rw-r--r--include/linux/ext4_fs_sb.h1
2 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/ext4_fs.h b/include/linux/ext4_fs.h
index 8e5009ee4ad8..a3df2afc004b 100644
--- a/include/linux/ext4_fs.h
+++ b/include/linux/ext4_fs.h
@@ -142,6 +142,9 @@ struct ext4_group_desc
142/* 142/*
143 * Macro-instructions used to manage group descriptors 143 * Macro-instructions used to manage group descriptors
144 */ 144 */
145#define EXT4_MIN_DESC_SIZE 32
146#define EXT4_MAX_DESC_SIZE EXT4_MIN_BLOCK_SIZE
147#define EXT4_DESC_SIZE(s) (EXT4_SB(s)->s_desc_size)
145#ifdef __KERNEL__ 148#ifdef __KERNEL__
146# define EXT4_BLOCKS_PER_GROUP(s) (EXT4_SB(s)->s_blocks_per_group) 149# define EXT4_BLOCKS_PER_GROUP(s) (EXT4_SB(s)->s_blocks_per_group)
147# define EXT4_DESC_PER_BLOCK(s) (EXT4_SB(s)->s_desc_per_block) 150# define EXT4_DESC_PER_BLOCK(s) (EXT4_SB(s)->s_desc_per_block)
@@ -149,7 +152,7 @@ struct ext4_group_desc
149# define EXT4_DESC_PER_BLOCK_BITS(s) (EXT4_SB(s)->s_desc_per_block_bits) 152# define EXT4_DESC_PER_BLOCK_BITS(s) (EXT4_SB(s)->s_desc_per_block_bits)
150#else 153#else
151# define EXT4_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group) 154# define EXT4_BLOCKS_PER_GROUP(s) ((s)->s_blocks_per_group)
152# define EXT4_DESC_PER_BLOCK(s) (EXT4_BLOCK_SIZE(s) / sizeof (struct ext4_group_desc)) 155# define EXT4_DESC_PER_BLOCK(s) (EXT4_BLOCK_SIZE(s) / EXT4_DESC_SIZE(s))
153# define EXT4_INODES_PER_GROUP(s) ((s)->s_inodes_per_group) 156# define EXT4_INODES_PER_GROUP(s) ((s)->s_inodes_per_group)
154#endif 157#endif
155 158
@@ -474,7 +477,7 @@ struct ext4_super_block {
474 * things it doesn't understand... 477 * things it doesn't understand...
475 */ 478 */
476 __le32 s_first_ino; /* First non-reserved inode */ 479 __le32 s_first_ino; /* First non-reserved inode */
477 __le16 s_inode_size; /* size of inode structure */ 480 __le16 s_inode_size; /* size of inode structure */
478 __le16 s_block_group_nr; /* block group # of this superblock */ 481 __le16 s_block_group_nr; /* block group # of this superblock */
479 __le32 s_feature_compat; /* compatible feature set */ 482 __le32 s_feature_compat; /* compatible feature set */
480/*60*/ __le32 s_feature_incompat; /* incompatible feature set */ 483/*60*/ __le32 s_feature_incompat; /* incompatible feature set */
@@ -500,7 +503,7 @@ struct ext4_super_block {
500 __le32 s_hash_seed[4]; /* HTREE hash seed */ 503 __le32 s_hash_seed[4]; /* HTREE hash seed */
501 __u8 s_def_hash_version; /* Default hash version to use */ 504 __u8 s_def_hash_version; /* Default hash version to use */
502 __u8 s_reserved_char_pad; 505 __u8 s_reserved_char_pad;
503 __u16 s_reserved_word_pad; 506 __le16 s_desc_size; /* size of group descriptor */
504/*100*/ __le32 s_default_mount_opts; 507/*100*/ __le32 s_default_mount_opts;
505 __le32 s_first_meta_bg; /* First metablock block group */ 508 __le32 s_first_meta_bg; /* First metablock block group */
506 __le32 s_mkfs_time; /* When the filesystem was created */ 509 __le32 s_mkfs_time; /* When the filesystem was created */
diff --git a/include/linux/ext4_fs_sb.h b/include/linux/ext4_fs_sb.h
index ce7a844d6703..691a713139ce 100644
--- a/include/linux/ext4_fs_sb.h
+++ b/include/linux/ext4_fs_sb.h
@@ -29,6 +29,7 @@
29 */ 29 */
30struct ext4_sb_info { 30struct ext4_sb_info {
31 unsigned long s_frag_size; /* Size of a fragment in bytes */ 31 unsigned long s_frag_size; /* Size of a fragment in bytes */
32 unsigned long s_desc_size; /* Size of a group descriptor in bytes */
32 unsigned long s_frags_per_block;/* Number of fragments per block */ 33 unsigned long s_frags_per_block;/* Number of fragments per block */
33 unsigned long s_inodes_per_block;/* Number of inodes per block */ 34 unsigned long s_inodes_per_block;/* Number of inodes per block */
34 unsigned long s_frags_per_group;/* Number of fragments in a group */ 35 unsigned long s_frags_per_group;/* Number of fragments in a group */