On Sun, 2008-02-17 at 15:13 +0900, Akinobu Mita wrote: > Use ext4_get_group_desc() > Acked and added to ext4 patch queue. > Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> > Cc: Stephen Tweedie <sct@xxxxxxxxxx> > Cc: adilger@xxxxxxxxxxxxx > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Mingming Cao <cmm@xxxxxxxxxx> > Cc: Theodore Tso <tytso@xxxxxxx> > --- > fs/ext4/inode.c | 20 +++----------------- > 1 file changed, 3 insertions(+), 17 deletions(-) > > Index: 2.6-rc/fs/ext4/inode.c > =================================================================== > --- 2.6-rc.orig/fs/ext4/inode.c > +++ 2.6-rc/fs/ext4/inode.c > @@ -2455,12 +2455,10 @@ out_stop: > static ext4_fsblk_t ext4_get_inode_block(struct super_block *sb, > unsigned long ino, struct ext4_iloc *iloc) > { > - unsigned long desc, group_desc; > ext4_group_t block_group; > unsigned long offset; > ext4_fsblk_t block; > - struct buffer_head *bh; > - struct ext4_group_desc * gdp; > + struct ext4_group_desc *gdp; > > if (!ext4_valid_inum(sb, ino)) { > /* > @@ -2472,22 +2470,10 @@ static ext4_fsblk_t ext4_get_inode_block > } > > block_group = (ino - 1) / EXT4_INODES_PER_GROUP(sb); > - if (block_group >= EXT4_SB(sb)->s_groups_count) { > - ext4_error(sb,"ext4_get_inode_block","group >= groups count"); > + gdp = ext4_get_group_desc(sb, block_group, NULL); > + if (!gdp) > return 0; > - } > - smp_rmb(); > - group_desc = block_group >> EXT4_DESC_PER_BLOCK_BITS(sb); > - desc = block_group & (EXT4_DESC_PER_BLOCK(sb) - 1); > - bh = EXT4_SB(sb)->s_group_desc[group_desc]; > - if (!bh) { > - ext4_error (sb, "ext4_get_inode_block", > - "Descriptor not loaded"); > - return 0; > - } > > - gdp = (struct ext4_group_desc *)((__u8 *)bh->b_data + > - desc * EXT4_DESC_SIZE(sb)); > /* > * Figure out the offset within the block group inode table > */ - 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