diff --git a/fs/ext2/ext2fs.c b/fs/ext2/ext2fs.c
index 436f4a4..d54f60b 100644
--- a/fs/ext2/ext2fs.c
+++ b/fs/ext2/ext2fs.c
@@ -110,7 +110,7 @@
 	uint32_t inode_table_id;
 	uint16_t free_blocks;
 	uint16_t free_inodes;
-	uint16_t pad;
+	uint16_t used_dir_cnt;
 	uint32_t reserved[3];
 };
 
@@ -182,14 +182,22 @@
 
 static int ext2fs_blockgroup
 	(struct ext2_data *data, int group, struct ext2_block_group *blkgrp) {
+	unsigned int blkno;
+	unsigned int blkoff;
+	unsigned int desc_per_blk;
+
+	desc_per_blk = EXT2_BLOCK_SIZE(data) / sizeof(struct ext2_block_group);
+
+	blkno = __le32_to_cpu(data->sblock.first_data_block) + 1 +
+	group / desc_per_blk;
+	blkoff = (group % desc_per_blk) * sizeof(struct ext2_block_group);
 #ifdef DEBUG
-	printf ("ext2fs read blockgroup\n");
+	printf ("ext2fs read %d group descriptor (blkno %d blkoff %d)\n",
+		group, blkno, blkoff);
 #endif
-	return (ext2fs_devread
-		(((__le32_to_cpu (data->sblock.first_data_block) +
-		   1) << LOG2_EXT2_BLOCK_SIZE (data)),
-		 group * sizeof (struct ext2_block_group),
-		 sizeof (struct ext2_block_group), (char *) blkgrp));
+	return (ext2fs_devread (blkno << LOG2_EXT2_BLOCK_SIZE(data),
+		blkoff, sizeof(struct ext2_block_group), (char *)blkgrp));
+
 }
 
 
@@ -203,34 +211,37 @@
 	unsigned int blkno;
 	unsigned int blkoff;
 
-	/* It is easier to calculate if the first inode is 0.  */
-	ino--;
 #ifdef DEBUG
 	printf ("ext2fs read inode %d\n", ino);
 #endif
-	status = ext2fs_blockgroup (data,
-				    ino /
-				    __le32_to_cpu (sblock->inodes_per_group),
-				    &blkgrp);
+	/* It is easier to calculate if the first inode is 0.  */
+	ino--;
+	status = ext2fs_blockgroup (data, ino / __le32_to_cpu
+				    (sblock->inodes_per_group), &blkgrp);
 	if (status == 0) {
 		return (0);
 	}
-	inodes_per_block = EXT2_BLOCK_SIZE (data) / 128;
-	blkno = (ino % __le32_to_cpu (sblock->inodes_per_group)) /
-		inodes_per_block;
-	blkoff = (ino % __le32_to_cpu (sblock->inodes_per_group)) %
-		inodes_per_block;
+
+	inodes_per_block = EXT2_BLOCK_SIZE(data) / __le16_to_cpu(sblock->inode_size);
+
+#ifdef DEBUG
+	printf ("ext2fs read inode blkno %d blkoff %d\n", blkno, blkoff);
+#endif
+
+	blkno = __le32_to_cpu (blkgrp.inode_table_id) +
+		(ino % __le32_to_cpu (sblock->inodes_per_group))
+		/ inodes_per_block;
+	blkoff = (ino % inodes_per_block) * __le16_to_cpu (sblock->inode_size);
 #ifdef DEBUG
 	printf ("ext2fs read inode blkno %d blkoff %d\n", blkno, blkoff);
 #endif
 	/* Read the inode.  */
-	status = ext2fs_devread (((__le32_to_cpu (blkgrp.inode_table_id) +
-				   blkno) << LOG2_EXT2_BLOCK_SIZE (data)),
-				 sizeof (struct ext2_inode) * blkoff,
+	status = ext2fs_devread (blkno << LOG2_EXT2_BLOCK_SIZE (data), blkoff,
 				 sizeof (struct ext2_inode), (char *) inode);
 	if (status == 0) {
 		return (0);
 	}
+
 	return (1);
 }
 
