aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kernel/kernel/filesystem/devfs/filesystem.cpp2
-rw-r--r--kernel/kernel/filesystem/error.hpp20
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.cpp2
-rw-r--r--kernel/kernel/filesystem/rootfs/filesystem.cpp2
-rw-r--r--kernel/kernel/filesystem/vfs.cpp2
5 files changed, 17 insertions, 11 deletions
diff --git a/kernel/kernel/filesystem/devfs/filesystem.cpp b/kernel/kernel/filesystem/devfs/filesystem.cpp
index 8af12131..59a1ae9c 100644
--- a/kernel/kernel/filesystem/devfs/filesystem.cpp
+++ b/kernel/kernel/filesystem/devfs/filesystem.cpp
@@ -74,7 +74,7 @@ namespace kernel::filesystem::devfs
return *it;
}
- return std::unexpected{vfs_errc::non_existent_path};
+ return std::unexpected{vfs_errc::no_such_file_or_directory};
}
auto filesystem::build_device_inode_table() -> void
diff --git a/kernel/kernel/filesystem/error.hpp b/kernel/kernel/filesystem/error.hpp
index 041b7b98..678d95c5 100644
--- a/kernel/kernel/filesystem/error.hpp
+++ b/kernel/kernel/filesystem/error.hpp
@@ -12,16 +12,18 @@ namespace kernel::filesystem
enum struct vfs_errc : int
{
invalid_path = 1,
- non_existent_path,
+ no_such_file_or_directory,
mount_point_not_found,
mount_busy,
has_child_mounts,
invalid_filesystem,
unmount_failed,
- symbolic_link_loop,
+ too_many_symbolic_link_levels,
unsupported_filesystem,
invalid_file_descriptor,
invalid_inode,
+ not_a_directory,
+ is_a_directory,
};
namespace detail
@@ -39,8 +41,8 @@ namespace kernel::filesystem
{
case vfs_errc::invalid_path:
return "invalid path";
- case vfs_errc::non_existent_path:
- return "path does not exist";
+ case vfs_errc::no_such_file_or_directory:
+ return "no such file or directory";
case vfs_errc::mount_point_not_found:
return "mount point not found";
case vfs_errc::mount_busy:
@@ -51,7 +53,7 @@ namespace kernel::filesystem
return "invalid filesystem";
case vfs_errc::unmount_failed:
return "unmount failed";
- case vfs_errc::symbolic_link_loop:
+ case vfs_errc::too_many_symbolic_link_levels:
return "too many symbolic link levels";
case vfs_errc::unsupported_filesystem:
return "unsupported filesystem";
@@ -59,6 +61,10 @@ namespace kernel::filesystem
return "invalid file descriptor";
case vfs_errc::invalid_inode:
return "invalid inode";
+ case vfs_errc::not_a_directory:
+ return "not a directory";
+ case vfs_errc::is_a_directory:
+ return "is a directory";
default:
return "unknown VFS error";
}
@@ -72,14 +78,14 @@ namespace kernel::filesystem
case vfs_errc::invalid_filesystem:
case vfs_errc::invalid_inode:
return make_error_condition(kstd::errc::invalid_argument);
- case vfs_errc::non_existent_path:
+ case vfs_errc::no_such_file_or_directory:
case vfs_errc::mount_point_not_found:
return make_error_condition(kstd::errc::no_such_file_or_directory);
case kernel::filesystem::vfs_errc::mount_busy:
case kernel::filesystem::vfs_errc::has_child_mounts:
case vfs_errc::unmount_failed:
return make_error_condition(kstd::errc::device_or_resource_busy);
- case vfs_errc::symbolic_link_loop:
+ case vfs_errc::too_many_symbolic_link_levels:
return make_error_condition(kstd::errc::too_many_symbolic_link_levels);
case vfs_errc::unsupported_filesystem:
return make_error_condition(kstd::errc::not_supported);
diff --git a/kernel/kernel/filesystem/ext2/filesystem.cpp b/kernel/kernel/filesystem/ext2/filesystem.cpp
index 55da8976..78a8aead 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.cpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.cpp
@@ -118,7 +118,7 @@ namespace kernel::filesystem::ext2
}
}
- return std::unexpected{vfs_errc::non_existent_path};
+ return std::unexpected{vfs_errc::no_such_file_or_directory};
}
auto filesystem::read_inode(uint32_t inode_number) const -> std::expected<kstd::shared_ptr<inode>, kstd::error_code>
diff --git a/kernel/kernel/filesystem/rootfs/filesystem.cpp b/kernel/kernel/filesystem/rootfs/filesystem.cpp
index 4efacb6b..ea2ceedf 100644
--- a/kernel/kernel/filesystem/rootfs/filesystem.cpp
+++ b/kernel/kernel/filesystem/rootfs/filesystem.cpp
@@ -45,6 +45,6 @@ namespace kernel::filesystem::rootfs
auto filesystem::lookup(kstd::shared_ptr<kernel::filesystem::inode> const &, std::string_view) const
-> std::expected<kstd::shared_ptr<kernel::filesystem::inode>, kstd::error_code>
{
- return std::unexpected{vfs_errc::non_existent_path};
+ return std::unexpected{vfs_errc::no_such_file_or_directory};
}
} // namespace kernel::filesystem::rootfs
diff --git a/kernel/kernel/filesystem/vfs.cpp b/kernel/kernel/filesystem/vfs.cpp
index 5ffc3468..aa462eae 100644
--- a/kernel/kernel/filesystem/vfs.cpp
+++ b/kernel/kernel/filesystem/vfs.cpp
@@ -270,7 +270,7 @@ namespace kernel::filesystem
{
if (symlink_counter++ > constants::symloop_max)
{
- return std::unexpected{vfs_errc::symbolic_link_loop};
+ return std::unexpected{vfs_errc::too_many_symbolic_link_levels};
}
kstd::vector<uint8_t> buffer(constants::symlink_max_path_length);