aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/kernel/filesystem/vfs.cpp14
-rw-r--r--kernel/kernel/filesystem/vfs.hpp19
2 files changed, 16 insertions, 17 deletions
diff --git a/kernel/kernel/filesystem/vfs.cpp b/kernel/kernel/filesystem/vfs.cpp
index c38e19d7..40f2c3aa 100644
--- a/kernel/kernel/filesystem/vfs.cpp
+++ b/kernel/kernel/filesystem/vfs.cpp
@@ -88,7 +88,7 @@ namespace kernel::filesystem
return *active_vfs;
}
- auto vfs::open(std::string_view path) -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>
+ auto vfs::open(std::string_view path) -> std::expected<dentry_ptr, kstd::error_code>
{
auto resolved_path = resolve_path_internal(path);
if (!resolved_path)
@@ -170,10 +170,8 @@ namespace kernel::filesystem
return std::unexpected{vfs_errc::unmount_failed};
}
- auto vfs::do_mount_internal(kstd::shared_ptr<dentry> const & mount_point_dentry,
- kstd::shared_ptr<struct mount> const & parent_mount,
- kstd::shared_ptr<filesystem> const & fs,
- kstd::shared_ptr<struct mount> const & source_mount) -> void
+ auto vfs::do_mount_internal(dentry_ptr const & mount_point_dentry, mount_ptr const & parent_mount, fs_ptr const & fs,
+ mount_ptr const & source_mount) -> void
{
auto new_fs_root =
kstd::make_shared<dentry>(mount_point_dentry->parent(), fs->root_inode(), mount_point_dentry->name());
@@ -198,7 +196,7 @@ namespace kernel::filesystem
}
auto vfs::resolve_path_internal(std::string_view path) const
- -> std::expected<std::pair<kstd::shared_ptr<dentry>, kstd::shared_ptr<struct mount>>, kstd::error_code>
+ -> std::expected<std::pair<dentry_ptr, mount_ptr>, kstd::error_code>
{
if (!path::is_valid_absolute_path(path))
{
@@ -310,12 +308,12 @@ namespace kernel::filesystem
return std::pair{current_dentry, current_mount};
}
- auto vfs::resolve_path(std::string_view path) const -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>
+ auto vfs::resolve_path(std::string_view path) const -> std::expected<dentry_ptr, kstd::error_code>
{
return resolve_path_internal(path).transform([](auto result) { return result.first; });
}
- auto vfs::find_mount(std::string_view path) const -> std::expected<kstd::shared_ptr<struct mount>, kstd::error_code>
+ auto vfs::find_mount(std::string_view path) const -> std::expected<mount_ptr, kstd::error_code>
{
return resolve_path_internal(path).transform([](auto result) { return result.second; });
}
diff --git a/kernel/kernel/filesystem/vfs.hpp b/kernel/kernel/filesystem/vfs.hpp
index f3f94e81..2645fe14 100644
--- a/kernel/kernel/filesystem/vfs.hpp
+++ b/kernel/kernel/filesystem/vfs.hpp
@@ -24,6 +24,10 @@ namespace kernel::filesystem
*/
struct vfs
{
+ using dentry_ptr = kstd::shared_ptr<dentry>;
+ using mount_ptr = kstd::shared_ptr<struct mount>;
+ using fs_ptr = kstd::shared_ptr<filesystem>;
+
vfs();
/**
@@ -49,7 +53,7 @@ namespace kernel::filesystem
@param path The path to the file to open.
@return A shared pointer to the dentry on success or an error code on failure.
*/
- auto open(std::string_view path) -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>;
+ auto open(std::string_view path) -> std::expected<dentry_ptr, kstd::error_code>;
/**
@brief Close a file by its associated @p path.
@@ -85,17 +89,14 @@ namespace kernel::filesystem
* - find_mount() for the mount context only.
*/
[[nodiscard]] auto resolve_path_internal(std::string_view path) const
- -> std::expected<std::pair<kstd::shared_ptr<dentry>, kstd::shared_ptr<struct mount>>, kstd::error_code>;
+ -> std::expected<std::pair<dentry_ptr, mount_ptr>, kstd::error_code>;
- [[nodiscard]] auto resolve_path(std::string_view path) const
- -> std::expected<kstd::shared_ptr<dentry>, kstd::error_code>;
+ [[nodiscard]] auto resolve_path(std::string_view path) const -> std::expected<dentry_ptr, kstd::error_code>;
- [[nodiscard]] auto find_mount(std::string_view path) const
- -> std::expected<kstd::shared_ptr<struct mount>, kstd::error_code>;
+ [[nodiscard]] auto find_mount(std::string_view path) const -> std::expected<mount_ptr, kstd::error_code>;
- auto do_mount_internal(kstd::shared_ptr<dentry> const & mount_point_dentry,
- kstd::shared_ptr<struct mount> const & parent_mount, kstd::shared_ptr<filesystem> const & fs,
- kstd::shared_ptr<struct mount> const & source_mount = nullptr) -> void;
+ auto do_mount_internal(dentry_ptr const & mount_point_dentry, mount_ptr const & parent_mount, fs_ptr const & fs,
+ mount_ptr const & source_mount = nullptr) -> void;
auto graft_persistent_device_fs(kstd::shared_ptr<devfs::filesystem> const & device_fs) -> void;