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.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};
}