aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-07-13 22:21:41 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-13 22:21:41 +0200
commitb7edb751d4224161361ccb80ad8e747cd294b166 (patch)
treee46066e3d425c7cf7c9657650336624198993bc4 /kernel
parentb105039ed6a0be0ba3da1827e711c649edef6d8e (diff)
downloadkernel-b7edb751d4224161361ccb80ad8e747cd294b166.tar.xz
kernel-b7edb751d4224161361ccb80ad8e747cd294b166.zip
kernel/ext2: improve error mapping
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel/filesystem/ext2/error.hpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/kernel/kernel/filesystem/ext2/error.hpp b/kernel/kernel/filesystem/ext2/error.hpp
index aed33ece..885f82e6 100644
--- a/kernel/kernel/filesystem/ext2/error.hpp
+++ b/kernel/kernel/filesystem/ext2/error.hpp
@@ -55,19 +55,24 @@ namespace kernel::filesystem::ext2
{
case ext2_errc::invalid_magic_number:
case ext2_errc::invalid_root_inode:
- case ext2_errc::invalid_block_group_index:
- case ext2_errc::invalid_block_index:
- case ext2_errc::invalid_block_number:
if (condition.category() == kernel::filesystem::vfs_category())
{
return condition.value() == static_cast<int>(kernel::filesystem::vfs_errc::invalid_filesystem);
}
else if (condition.category() == kstd::generic_category())
{
+ return condition.value() == static_cast<int>(kstd::errc::invalid_argument);
+ }
+ break;
+ case ext2_errc::invalid_block_group_index:
+ case ext2_errc::invalid_block_index:
+ case ext2_errc::invalid_block_number:
+ if (condition.category() == kstd::generic_category())
+ {
return condition.value() == static_cast<int>(kstd::errc::io_error);
}
+ break;
}
-
return kstd::error_category::equivalent(code, condition);
}
} constexpr inline ext2_category_instance{};