aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-06-02 17:32:08 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-06-02 17:32:08 +0200
commit3274bb4377b9f04b7a70139a86283e0fae44b228 (patch)
treeface2b0b544578e5efd1c28c8d75b3307d6e4a8a /kernel/src/filesystem/vfs.cpp
parente92df52c599f78f36a278508a2b6be5f3a15f3db (diff)
parent46d3f8978e9f4235064daf5f19de5bf3054e7c24 (diff)
downloadkernel-3274bb4377b9f04b7a70139a86283e0fae44b228.tar.xz
kernel-3274bb4377b9f04b7a70139a86283e0fae44b228.zip
Merge branch 'fmorgner/develop-BA-FS26/dynamic-fs' into 'develop-BA-FS26'
Add support infrastructure for automatic file system registration See merge request teachos/kernel!46
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index ae85291..e5dff8c 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -12,7 +12,6 @@
#include <kapi/system.hpp>
#include <kstd/memory>
-#include <kstd/string>
#include <kstd/vector>
#include <algorithm>
@@ -36,11 +35,10 @@ namespace kernel::filesystem
kapi::system::panic("[FILESYSTEM] vfs has already been initialized.");
}
- active_vfs.emplace(vfs{});
- active_vfs->init_internal();
+ active_vfs.emplace();
}
- auto vfs::init_internal() -> void
+ vfs::vfs()
{
// mount rootfs at /
auto root_fs = kstd::make_shared<rootfs::filesystem>();
@@ -226,22 +224,22 @@ namespace kernel::filesystem
continue;
}
- auto next_dentry = current_dentry->find_child(part.view());
+ auto next_dentry = current_dentry->find_child(part);
if (!next_dentry)
{
auto current_fs = current_mount->get_filesystem();
- auto found_inode = current_fs->lookup(current_dentry->get_inode(), part.view());
+ auto found_inode = current_fs->lookup(current_dentry->get_inode(), part);
if (!found_inode)
{
return {nullptr, nullptr};
}
- next_dentry = kstd::make_shared<dentry>(current_dentry, found_inode, part.view());
+ next_dentry = kstd::make_shared<dentry>(current_dentry, found_inode, part);
current_dentry->add_child(next_dentry);
}
else if (next_dentry->has_flag(dentry::dentry_flags::is_mount_point))
{
- current_mount = m_mount_table.find_mount(next_dentry->absolute_path().view());
+ current_mount = m_mount_table.find_mount(next_dentry->absolute_path());
if (!current_mount)
{
kapi::system::panic("[FILESYSTEM] mount for dentry with mounted flag not found.");