summaryrefslogtreecommitdiff
path: root/src/journal.c
diff options
context:
space:
mode:
authorrobi <robi>2010-06-22 19:30:16 +0000
committerrobi <robi>2010-06-22 19:30:16 +0000
commit5246c045f10cf7b1c8765d9c6a914c7a197e27e0 (patch)
treef1353a2510fc860dbeea657575cc8da36946f2c0 /src/journal.c
parent355b5d2442d61e8dc849aeff08b9f9c8c2bd6786 (diff)
last group small inodetable
Diffstat (limited to 'src/journal.c')
-rw-r--r--src/journal.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/journal.c b/src/journal.c
index 07ea4e3..89896b1 100644
--- a/src/journal.c
+++ b/src/journal.c
@@ -325,15 +325,23 @@ static int bock_is_inodetable(blk64_t block){
int group;
struct ext2_group_desc *gdp;
blk64_t last;
+
+ last = current_fs->super->s_inodes_count / (current_fs->blocksize / current_fs->super->s_inode_size ) ;
+ last -= ((current_fs->group_desc_count - 1) * current_fs->inode_blocks_per_group );
+
//FIXME for struct ext4_group_desc 48/64BIT
for (group = 0; group < current_fs->group_desc_count; group++){
gdp = &current_fs->group_desc[group];
if (block >= (gdp->bg_inode_table + current_fs->inode_blocks_per_group))
continue;
- if (block >= gdp->bg_inode_table)
+ if (block >= gdp->bg_inode_table){
+ if ( group == (current_fs->group_desc_count - 1 )){
+ if (block >= gdp->bg_inode_table + last)
+ break;
+ }
return 1;
+ }
else
-//FIXME: if the last group has a small inodetable
break;
}
return 0;