mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 13:17:35 +00:00
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:
parent
d0f06e5f3f
commit
ed7ae6c02c
14 changed files with 78 additions and 24 deletions
|
@ -26,6 +26,7 @@ public:
|
|||
|
||||
dword id() const { return m_fsid; }
|
||||
static FS* from_fsid(dword);
|
||||
static void sync();
|
||||
|
||||
virtual bool initialize() = 0;
|
||||
virtual const char* class_name() const = 0;
|
||||
|
@ -98,11 +99,7 @@ public:
|
|||
void will_be_destroyed();
|
||||
|
||||
protected:
|
||||
Inode(FS& fs, unsigned index)
|
||||
: m_fs(fs)
|
||||
, m_index(index)
|
||||
{
|
||||
}
|
||||
Inode(FS& fs, unsigned index);
|
||||
|
||||
virtual void populate_metadata() const = 0;
|
||||
void set_metadata_dirty(bool b) { m_metadata_dirty = b; }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue