aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-03-19 22:58:31 +0100
committerLukas Oesch <lukasoesch20@gmail.com>2026-03-26 21:17:23 +0100
commit09e3d0cb2272e7eabd79a320c17c58124515d427 (patch)
treeb48f75b2a2852af3abca953bb3d6320a4f97418c /kernel/src/filesystem/vfs.cpp
parent8d3471f1d160d301f9d990455bd8c63450df1cf3 (diff)
downloadteachos-09e3d0cb2272e7eabd79a320c17c58124515d427.tar.xz
teachos-09e3d0cb2272e7eabd79a320c17c58124515d427.zip
first try to simplify the architecture (remove redundant inode_file and open() methods), add ext2_file placeholder struct
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index 188da6d..4b0c7d7 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -5,11 +5,8 @@
#include "kernel/devices/device.hpp"
#include "kernel/devices/storage/storage_management.hpp"
#include "kernel/filesystem/custody.hpp"
-#include "kernel/filesystem/device_file.hpp"
#include "kernel/filesystem/device_inode.hpp"
#include "kernel/filesystem/ext2/ext2_filesystem.hpp"
-#include "kernel/filesystem/inode.hpp"
-#include "kernel/filesystem/inode_file.hpp"
#include "kernel/filesystem/mount.hpp"
#include "kernel/filesystem/open_file_description.hpp"
@@ -71,16 +68,13 @@ namespace filesystem
if (auto custody = resolve_path(path))
{
auto node = custody->get_inode();
- if (node->is_device())
+
+ auto current_inode_file = node->open_file();
+ if (!current_inode_file)
{
- auto device_node = static_cast<device_inode *>(node.get());
- auto current_device_file = kstd::make_shared<device_file>(device_node->backing_device());
- current_device_file->open();
- return open_file_description{current_device_file};
+ kapi::system::panic("[FILESYSTEM] inode::open_file returned null file.");
}
- auto current_inode_file = kstd::make_shared<inode_file>(node);
- current_inode_file->open();
return open_file_description{current_inode_file};
}