ext3: use ext3_get_group_desc()
PATCH 3/4 ext3: use ext3_get_group_desc()
Use ext3_get_group_desc()
Signed-off-by Akinobu Mita <[email protected]>
Cc Stephen Tweedie <[email protected]>
Cc Andrew Morton <[email protected]>
--- fs/ext3/inode.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-)
fs/ext3/inode.c +5 -18
@@ -2454,11 +2454,10 @@ out_stop:static ext3_fsblk_t ext3_get_inode_block (struct super_block *sb,unsigned long ino,struct ext3_iloc *iloc) { -unsigned long desc, group_desc, block_group; +unsigned long block_group;unsigned long offset;ext3_fsblk_t block; -struct buffer_head *bh; -struct ext3_group_desc * gdp; +struct ext3_group_desc *gdp;if (!ext3_valid_inum (sb, ino)) {/*
@@ -2470,27 +2469,15 @@ static ext3_fsblk_t ext3_get_inode_block } block_group = (ino -1 ) /EXT3_INODES_PER_GROUP (sb); -if (block_group >=EXT3_SB (sb)->s_groups_count) { -ext3_error (sb,"ext3_get_inode_block" ,"group >= groups count" ); -return 0 ; - } -smp_rmb (); - group_desc = block_group >>EXT3_DESC_PER_BLOCK_BITS (sb); - desc = block_group & (EXT3_DESC_PER_BLOCK (sb) -1 ); - bh =EXT3_SB (sb)->s_group_desc[group_desc]; -if (!bh) { -ext3_error (sb,"ext3_get_inode_block" , -"Descriptor not loaded" ); + gdp =ext3_get_group_desc (sb, block_group,NULL ); +if (!gdp)return 0 ; - } - - gdp = (struct ext3_group_desc *)bh->b_data;/* * Figure out the offset within the block group inode table */ offset = ((ino -1 ) %EXT3_INODES_PER_GROUP (sb)) *EXT3_INODE_SIZE (sb); - block =le32_to_cpu (gdp[desc].bg_inode_table) + + block =le32_to_cpu (gdp->bg_inode_table) + (offset >>EXT3_BLOCK_SIZE_BITS (sb)); iloc->block_group = block_group;