76 int frags_per_block = 0;
80 ULONG group_block = 0;
94 pExt2Sb->s_first_data_block = (pExt2Sb->s_log_block_size) ? 0 : 1;
101 if (!pExt2Sb->s_rev_level)
111 pExt2Sb->s_lastcheck = pExt2Sb->s_mtime = pExt2Sb->s_wtime;
113 if (!pExt2Sb->s_blocks_per_group)
114 pExt2Sb->s_blocks_per_group = Ext2Sys->
blocksize * 8;
116 pExt2Sb->s_frags_per_group = pExt2Sb->s_blocks_per_group * frags_per_block;
119 if (pExt2Sb->s_r_blocks_count >= pExt2Sb->s_blocks_count)
128 if (pExt2Sb->s_feature_incompat &
138 Ext2Sys->
group_desc_count = (pExt2Sb->s_blocks_count - pExt2Sb->s_first_data_block
147 if (!pExt2Sb->s_inodes_count)
163 pExt2Sb->s_inodes_per_group = (pExt2Sb->s_inodes_count + Ext2Sys->
group_desc_count - 1)
167 pExt2Sb->s_inodes_per_group = Ext2Sys->
blocksize*8;
185 pExt2Sb->s_inodes_per_group &= ~7;
192 pExt2Sb->s_inodes_count = pExt2Sb->s_inodes_per_group * Ext2Sys->
group_desc_count;
193 pExt2Sb->s_free_inodes_count = pExt2Sb->s_inodes_count;
211 rem = ((pExt2Sb->s_blocks_count - pExt2Sb->s_first_data_block) %
212 pExt2Sb->s_blocks_per_group);
217 if (rem && (rem < overhead+50))
219 pExt2Sb->s_blocks_count -= rem;
253 group_block = pExt2Sb->s_first_data_block;
256 pExt2Sb->s_free_blocks_count = 0;
262 numblocks = (pExt2Sb->s_blocks_count - pExt2Sb->s_first_data_block)
263 % pExt2Sb->s_blocks_per_group;
266 numblocks = pExt2Sb->s_blocks_per_group;
270 numblocks = pExt2Sb->s_blocks_per_group;
285 pExt2Sb->s_free_blocks_count += numblocks;
287 Ext2Sys->
group_desc[
i].bg_free_inodes_count = (
__u16)pExt2Sb->s_inodes_per_group;
290 group_block += pExt2Sb->s_blocks_per_group;
#define EXT3_FEATURE_INCOMPAT_JOURNAL_DEV
bool ext2_allocate_group_desc(PEXT2_FILESYS Ext2Sys)
bool ext2_allocate_block_bitmap(PEXT2_FILESYS Ext2Sys)
#define EXT2_GOOD_OLD_REV
void ext2_free_inode_bitmap(PEXT2_FILESYS Ext2Sys)
#define EXT2_DFL_MAX_MNT_COUNT
PEXT2_GROUP_DESC group_desc
bool ext2_allocate_inode_bitmap(PEXT2_FILESYS Ext2Sys)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
#define EXT2_INODE_SIZE(sb)
void ext2_free_block_bitmap(PEXT2_FILESYS Ext2Sys)
unsigned long desc_blocks
#define EXT2_DESC_PER_BLOCK(s)
bool ext2_bg_has_super(PEXT2_SUPER_BLOCK pExt2Sb, int group_block)
#define EXT2_ERRORS_DEFAULT
unsigned long inode_blocks_per_group
#define EXT2_FIRST_INODE(s)
void ext2_free_group_desc(PEXT2_FILESYS Ext2Sys)
bool ext2_mark_bitmap(PEXT2_BITMAP bitmap, ULONG bitno)
#define EXT2_BLOCK_SIZE(sb)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOLEAN NTAPI RtlTimeToSecondsSince1970(PLARGE_INTEGER Time, PULONG ElapsedSeconds)
#define set_field(field, default)
#define EXT2_GOOD_OLD_INODE_SIZE
#define EXT2_GOOD_OLD_FIRST_INO
NTSTATUS NTAPI NtQuerySystemTime(OUT PLARGE_INTEGER SystemTime)
char * cleanup(char *str)
#define EXT2_FRAG_SIZE(s)
#define EXT2_DFL_CHECKINTERVAL
#define EXT2_BLOCKS_PER_GROUP(s)
PEXT2_SUPER_BLOCK ext2_sb
PEXT2_BLOCK_BITMAP block_map