Kernel: Try to set [cm]time in Inode::did_modify_contents

This indirectly resolves a fixme in sys$msync
This commit is contained in:
Hendiadyoin1 2022-06-18 19:08:18 +02:00 committed by Andreas Kling
parent 10d9bb93be
commit c3e57bfccb
Notes: sideshowbarker 2024-07-17 23:02:37 +09:00
2 changed files with 6 additions and 1 deletions

View File

@ -232,6 +232,12 @@ void Inode::did_remove_child(InodeIdentifier, StringView name)
void Inode::did_modify_contents()
{
// FIXME: What happens if this fails?
// ENOTIMPL would be a meaningless error to return here
auto time = kgettimeofday().to_truncated_seconds();
(void)set_mtime(time);
(void)set_ctime(time);
m_watchers.for_each([&](auto& watcher) {
watcher->notify_inode_event({}, identifier(), InodeWatcherEvent::Type::ContentModified);
});

View File

@ -600,7 +600,6 @@ ErrorOr<FlatPtr> Process::sys$msync(Userspace<void*> address, size_t size, int f
// FIXME: Handle MS_ASYNC
TRY(inode_vmobject.sync(offset / PAGE_SIZE, rounded_size / PAGE_SIZE));
// FIXME: Handle MS_INVALIDATE
// FIXME: If msync() causes any write to a file, the file's st_ctime and st_mtime fields shall be marked for update.
}
return 0;
}