summaryrefslogtreecommitdiffstats
path: root/fs/ext4/inode.c
diff options
context:
space:
mode:
authorAlexandre Ratchov <alexandre.ratchov@bull.net>2006-10-11 10:21:14 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-11 20:14:18 +0200
commit0d1ee42f27d30eed1659f3e85bcbbc7b3711f61f (patch)
tree9477b1b1813e67e9a0a06af13c91a34c23c42bc8 /fs/ext4/inode.c
parent[PATCH] jbd2: switch blks_type from sector_t to ull (diff)
downloadlinux-0d1ee42f27d30eed1659f3e85bcbbc7b3711f61f.tar.xz
linux-0d1ee42f27d30eed1659f3e85bcbbc7b3711f61f.zip
[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 'fs/ext4/inode.c')
-rw-r--r--fs/ext4/inode.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index c05dc57148bb..d03e7d85a638 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -2432,14 +2432,16 @@ static ext4_fsblk_t ext4_get_inode_block(struct super_block *sb,
return 0;
}
- gdp = (struct ext4_group_desc *)bh->b_data;
+ gdp = (struct ext4_group_desc *)((__u8 *)bh->b_data +
+ desc * EXT4_DESC_SIZE(sb));
/*
* Figure out the offset within the block group inode table
*/
offset = ((ino - 1) % EXT4_INODES_PER_GROUP(sb)) *
EXT4_INODE_SIZE(sb);
- block = ext4_inode_table(gdp + desc) +
- (offset >> EXT4_BLOCK_SIZE_BITS(sb));
+ block = ext4_inode_table(gdp) + (offset >> EXT4_BLOCK_SIZE_BITS(sb));
+
+
iloc->block_group = block_group;
iloc->offset = offset & (EXT4_BLOCK_SIZE(sb) - 1);