aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index 2c4a4d5..ece3080 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -32,21 +32,28 @@ namespace filesystem
}
active_vfs.emplace(vfs{});
+ active_vfs->init_internal();
+ }
+ auto vfs::init_internal() -> void
+ {
auto storage_mgmt = devices::storage::storage_management::get();
// TODO BA-FS26 fix mounting boot_device
if (auto boot_device = storage_mgmt.determine_boot_device())
{
- active_vfs->m_root_fs = kstd::make_shared<ext2::ext2_filesystem>();
- active_vfs->m_root_dentry = kstd::make_shared<dentry>(nullptr, active_vfs->m_root_fs->root_inode());
- // if (active_vfs->do_mount("/", active_vfs->m_root_fs) != 0)
+ m_root_fs = kstd::make_shared<ext2::ext2_filesystem>();
+
+ m_root_fs->mount(boot_device);
+
+ m_root_dentry = kstd::make_shared<dentry>(nullptr, m_root_fs->root_inode());
+ // if (do_mount("/", m_root_fs) != 0)
// {
// kapi::system::panic("[FILESYSTEM] Failed to mount root filesystem.");
// }
// TODO BA-FS26 use do_mount when tempdevfs is implemented -> just call /dev/ with all devices in devtempfs
std::ranges::for_each(storage_mgmt.all_controllers(), [&](auto controller) {
- std::ranges::for_each(controller->all_devices(), [&](auto device) { active_vfs->make_device_node(device); });
+ std::ranges::for_each(controller->all_devices(), [&](auto device) { make_device_node(device); });
});
}
else