disk->GroupCount = groupCount;\r
\r
// Get an inode cache handle\r
- disk->CacheID = Inode_GetHandle();\r
+ disk->CacheID = Inode_GetHandle(NULL);\r
\r
// Get Block Size\r
if( sb.s_log_block_size > MAX_BLOCK_LOG_SIZE ) {\r
\r
int Ext2_int_WritebackNode(tExt2_Disk *Disk, tVFS_Node *Node)\r
{\r
- tExt2_Inode inode;\r
+ tExt2_Inode inode = {0};\r
\r
if( Disk != Node->ImplPtr ) {\r
Log_Error("Ext2", "Ext2_int_WritebackNode - Disk != Node->ImplPtr");\r
VFS_ReadAt(Disk->FD, Disk->BlockSize*bg->bg_inode_bitmap+ofs, sector_size, buf);\r
\r
int byte, bit;\r
- for( byte = 0; byte < sector_size && buf[byte] != 0xFF; byte ++ )\r
+ for( byte = 0; byte < sector_size && buf[byte] == 0xFF; byte ++ )\r
;\r
if( byte < sector_size )\r
{\r
// Update Primary\r
VFS_WriteAt(Disk->FD, 1024, 1024, &Disk->SuperBlock);\r
\r
+ // - Update block groups while we're at it\r
+ VFS_WriteAt(\r
+ Disk->FD,\r
+ Disk->SuperBlock.s_first_data_block * Disk->BlockSize + 1024,\r
+ sizeof(tExt2_Group)*Disk->GroupCount,\r
+ Disk->Groups\r
+ );\r
+ \r
// Secondaries\r
// at Block Group 1, 3^n, 5^n, 7^n\r
\r