Add sync() syscall and a /bin/sync.

It walks all the live Inode objects and flushes pending metadata changes
wherever needed.

This could be optimized by keeping a separate list of dirty Inodes,
but let's not get ahead of ourselves.
This commit is contained in:
Andreas Kling 2018-12-20 00:39:29 +01:00
parent d0f06e5f3f
commit ed7ae6c02c
Notes: sideshowbarker 2024-07-19 16:07:56 +09:00
14 changed files with 78 additions and 24 deletions

View file

@ -306,6 +306,7 @@ void Ext2FSInode::populate_metadata() const
void Ext2FSInode::flush_metadata()
{
dbgprintf("Ext2FSInode: flush_metadata for inode %u\n", index());
m_raw_inode.i_size = m_metadata.size;
m_raw_inode.i_mode = m_metadata.mode;
m_raw_inode.i_uid = m_metadata.uid;