diff --git a/Kernel/FileSystem/SysFS.cpp b/Kernel/FileSystem/SysFS.cpp index 40c33ff7d2..af0328b967 100644 --- a/Kernel/FileSystem/SysFS.cpp +++ b/Kernel/FileSystem/SysFS.cpp @@ -170,7 +170,6 @@ NonnullRefPtr SysFSDirectoryInode::create(SysFS const& sysf SysFSDirectoryInode::SysFSDirectoryInode(SysFS const& fs, SysFSComponent const& component) : SysFSInode(fs, component) - , m_parent_fs(const_cast(fs)) { } @@ -192,17 +191,17 @@ InodeMetadata SysFSDirectoryInode::metadata() const } KResult SysFSDirectoryInode::traverse_as_directory(Function callback) const { - MutexLocker locker(m_parent_fs.m_lock); - return m_associated_component->traverse_as_directory(m_parent_fs.fsid(), move(callback)); + MutexLocker locker(fs().m_lock); + return m_associated_component->traverse_as_directory(fs().fsid(), move(callback)); } RefPtr SysFSDirectoryInode::lookup(StringView name) { - MutexLocker locker(m_parent_fs.m_lock); + MutexLocker locker(fs().m_lock); auto component = m_associated_component->lookup(name); if (!component) return {}; - return component->to_inode(m_parent_fs); + return component->to_inode(fs()); } SysFSBusDirectory& SysFSComponentRegistry::buses_directory() diff --git a/Kernel/FileSystem/SysFS.h b/Kernel/FileSystem/SysFS.h index a02887ff4b..d52d6e77f3 100644 --- a/Kernel/FileSystem/SysFS.h +++ b/Kernel/FileSystem/SysFS.h @@ -106,14 +106,15 @@ public: static NonnullRefPtr create(SysFS const&, SysFSComponent const&); virtual ~SysFSDirectoryInode() override; + SysFS& fs() { return static_cast(Inode::fs()); } + SysFS const& fs() const { return static_cast(Inode::fs()); } + protected: SysFSDirectoryInode(SysFS const&, SysFSComponent const&); // ^Inode virtual InodeMetadata metadata() const override; virtual KResult traverse_as_directory(Function) const override; virtual RefPtr lookup(StringView name) override; - - SysFS& m_parent_fs; }; }