mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-29 07:48:47 +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
Notes:
sideshowbarker
2024-07-19 16:07:56 +09:00
Author: https://github.com/awesomekling
Commit: ed7ae6c02c
14 changed files with 78 additions and 24 deletions
|
@ -47,13 +47,11 @@ VFS::~VFS()
|
|||
|
||||
auto VFS::makeNode(InodeIdentifier inode) -> RetainPtr<Vnode>
|
||||
{
|
||||
auto metadata = inode.metadata();
|
||||
if (!metadata.isValid())
|
||||
auto core_inode = inode.fs()->get_inode(inode);
|
||||
if (!core_inode)
|
||||
return nullptr;
|
||||
|
||||
auto core_inode = inode.fs()->get_inode(inode);
|
||||
if (core_inode)
|
||||
core_inode->m_metadata = metadata;
|
||||
auto& metadata = core_inode->metadata();
|
||||
|
||||
InterruptDisabler disabler;
|
||||
|
||||
|
@ -501,3 +499,8 @@ void VFS::for_each_mount(Function<void(const Mount&)> callback) const
|
|||
callback(*mount);
|
||||
}
|
||||
}
|
||||
|
||||
void VFS::sync()
|
||||
{
|
||||
FS::sync();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue