diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-07-13 22:21:41 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-07-13 22:21:41 +0200 |
| commit | b7edb751d4224161361ccb80ad8e747cd294b166 (patch) | |
| tree | e46066e3d425c7cf7c9657650336624198993bc4 | |
| parent | b105039ed6a0be0ba3da1827e711c649edef6d8e (diff) | |
| download | kernel-b7edb751d4224161361ccb80ad8e747cd294b166.tar.xz kernel-b7edb751d4224161361ccb80ad8e747cd294b166.zip | |
kernel/ext2: improve error mapping
| -rw-r--r-- | kernel/kernel/filesystem/ext2/error.hpp | 13 |
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{}; |
