diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-06-02 17:32:08 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-06-02 17:32:08 +0200 |
| commit | 3274bb4377b9f04b7a70139a86283e0fae44b228 (patch) | |
| tree | face2b0b544578e5efd1c28c8d75b3307d6e4a8a /kernel/src/filesystem/vfs.cpp | |
| parent | e92df52c599f78f36a278508a2b6be5f3a15f3db (diff) | |
| parent | 46d3f8978e9f4235064daf5f19de5bf3054e7c24 (diff) | |
| download | kernel-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.cpp | 14 |
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."); |
