diff options
author | Alexandre Ratchov <alexandre.ratchov@bull.net> | 2006-10-11 04:21:14 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-11 14:14:18 -0400 |
commit | 0d1ee42f27d30eed1659f3e85bcbbc7b3711f61f (patch) | |
tree | 9477b1b1813e67e9a0a06af13c91a34c23c42bc8 /include | |
parent | 18eba7aae080d4a5c0d850ea810e83d11f0a8d77 (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')
-rw-r--r-- | include/linux/ext4_fs.h | 9 | ||||
-rw-r--r-- | include/linux/ext4_fs_sb.h | 1 |
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 | */ |
30 | struct ext4_sb_info { | 30 | struct 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 */ |