From 1f98d7d6387112463b636e522e265daadaeb1d7b Mon Sep 17 00:00:00 2001 From: Liav A Date: Wed, 23 Jun 2021 15:59:34 +0300 Subject: [PATCH] Kernel/ProcFS: Tighten modified time value across the filesystem objects It didn't make any sense to hardcode the modified time of all created inodes with "mepoch", so we should query the procfs "backend" to get the modified time value. Since ProcFS is dynamically changed all the time, the modified time equals to the querying time. This could be changed if desired, by making the modified_time() method virtual and overriding it in different procfs-backed objects :) --- Kernel/FileSystem/ProcFS.cpp | 6 +++--- Kernel/ProcessExposed.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Kernel/FileSystem/ProcFS.cpp b/Kernel/FileSystem/ProcFS.cpp index 4f5cd3968b..e90b96d064 100644 --- a/Kernel/FileSystem/ProcFS.cpp +++ b/Kernel/FileSystem/ProcFS.cpp @@ -145,7 +145,7 @@ InodeMetadata ProcFSInode::metadata() const metadata.uid = m_associated_component->owner_user(); metadata.gid = m_associated_component->owner_group(); metadata.size = m_associated_component->size(); - metadata.mtime = mepoch; + metadata.mtime = m_associated_component->modified_time(); return metadata; } @@ -216,7 +216,7 @@ InodeMetadata ProcFSDirectoryInode::metadata() const metadata.uid = m_associated_component->owner_user(); metadata.gid = m_associated_component->owner_group(); metadata.size = 0; - metadata.mtime = mepoch; + metadata.mtime = m_associated_component->modified_time(); return metadata; } KResult ProcFSDirectoryInode::traverse_as_directory(Function callback) const @@ -258,7 +258,7 @@ InodeMetadata ProcFSLinkInode::metadata() const metadata.uid = m_associated_component->owner_user(); metadata.gid = m_associated_component->owner_group(); metadata.size = 0; - metadata.mtime = mepoch; + metadata.mtime = m_associated_component->modified_time(); return metadata; } diff --git a/Kernel/ProcessExposed.h b/Kernel/ProcessExposed.h index 105af7c24d..0311e26770 100644 --- a/Kernel/ProcessExposed.h +++ b/Kernel/ProcessExposed.h @@ -69,6 +69,7 @@ public: virtual mode_t required_mode() const { return 0444; } virtual uid_t owner_user() const { return 0; } virtual gid_t owner_group() const { return 0; } + time_t modified_time() const { return TimeManagement::now().to_timeval().tv_sec; } virtual void prepare_for_deletion() { } virtual KResult refresh_data(FileDescription&) const