bool ext2_reserve_inodes(PEXT2_FILESYS fs) { ULONG i; int group; for (i = EXT2_ROOT_INO + 1; i < EXT2_FIRST_INODE(fs->ext2_sb); i++) { ext2_mark_inode_bitmap(fs->inode_map, i); group = ext2_group_of_ino(fs, i); fs->group_desc[group].bg_free_inodes_count--; fs->ext2_sb->s_free_inodes_count--; } return true; }
void ext2_inode_alloc_stats2(PEXT2_FILESYS fs, ULONG ino, int inuse, int isdir) { int group = ext2_group_of_ino(fs, ino); if (inuse > 0) ext2_mark_inode_bitmap(fs->inode_map, ino); else ext2_unmark_inode_bitmap(fs->inode_map, ino); fs->group_desc[group].bg_free_inodes_count -= inuse; if (isdir) fs->group_desc[group].bg_used_dirs_count += inuse; fs->ext2_sb->s_free_inodes_count -= inuse; }