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.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index 4e0b6bf..188da6d 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -6,6 +6,7 @@
#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"
@@ -72,7 +73,8 @@ namespace filesystem
auto node = custody->get_inode();
if (node->is_device())
{
- auto current_device_file = kstd::make_shared<device_file>(node->backing_device());
+ 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};
}
@@ -92,7 +94,7 @@ namespace filesystem
kapi::system::panic("[FILESYSTEM] make_device_node called with null device.");
}
- m_device_nodes.push_back(device_node_entry{device->name(), kstd::make_shared<inode>(device)});
+ m_device_nodes.push_back(device_node_entry{device->name(), kstd::make_shared<device_inode>(device)});
}
auto vfs::resolve_path(std::string_view path) -> std::optional<custody>