MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / SyncInode

Method SyncInode

Kernel/src/fs/ext2.cpp:1229–1246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1227 }
1228
1229 void Ext2Volume::SyncInode(ext2_inode_t& e2inode, uint32_t inode){
1230 uint8_t buf[part->parentDisk->blocksize];
1231 uint64_t lba = InodeLBA(inode);
1232
1233 if(int e = part->ReadBlock(lba, part->parentDisk->blocksize, buf)){
1234 Log::Error("[Ext2] Sync: Disk Error (%d) Reading Inode %d", e, inode);
1235 error = DiskReadError;
1236 return;
1237 }
1238
1239 *(ext2_inode_t*)(buf + (ResolveInodeBlockGroupIndex(inode) * inodeSize) % part->parentDisk->blocksize) = e2inode;
1240
1241 if(int e = part->WriteBlock(lba, part->parentDisk->blocksize, buf)){
1242 Log::Error("[Ext2] Sync: Disk Error (%d) Writing Inode %d", e, inode);
1243 error = DiskWriteError;
1244 return;
1245 }
1246 }
1247
1248 void Ext2Volume::SyncNode(Ext2Node* node){
1249 SyncInode(node->e2inode, node->inode);

Callers

nothing calls this directly

Calls 3

ErrorFunction · 0.85
ReadBlockMethod · 0.45
WriteBlockMethod · 0.45

Tested by

no test coverage detected