Kernel: VFS caches currently open inodes

This commit is contained in:
Bananymous
2023-03-16 15:31:33 +02:00
parent 1292be71b2
commit 1f2ceeb329
2 changed files with 32 additions and 10 deletions

View File

@@ -1,5 +1,7 @@
#pragma once
#include <BAN/HashMap.h>
#include <BAN/String.h>
#include <kernel/FS/FileSystem.h>
#include <kernel/Storage/StorageController.h>
@@ -13,7 +15,9 @@ namespace Kernel
static VirtualFileSystem& get();
virtual ~VirtualFileSystem() {};
virtual const BAN::RefPtr<Inode> root_inode() const override { return m_root_inode; }
virtual const BAN::RefPtr<Inode> root_inode() const override;
void close_inode(BAN::StringView);
BAN::ErrorOr<BAN::RefPtr<Inode>> from_absolute_path(BAN::StringView);
@@ -22,9 +26,8 @@ namespace Kernel
BAN::ErrorOr<void> initialize_impl();
private:
BAN::RefPtr<Inode> m_root_inode;
BAN::Vector<StorageController*> m_storage_controllers;
BAN::HashMap<BAN::String, BAN::RefPtr<Inode>> m_open_inodes;
BAN::Vector<StorageController*> m_storage_controllers;
};
}