aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel/filesystem/filesystem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel/filesystem/filesystem.cpp')
-rw-r--r--kernel/kernel/filesystem/filesystem.cpp16
1 files changed, 10 insertions, 6 deletions
diff --git a/kernel/kernel/filesystem/filesystem.cpp b/kernel/kernel/filesystem/filesystem.cpp
index 24d0e229..ac0d0ebc 100644
--- a/kernel/kernel/filesystem/filesystem.cpp
+++ b/kernel/kernel/filesystem/filesystem.cpp
@@ -1,11 +1,14 @@
#include <kernel/filesystem/filesystem.hpp>
+#include <kernel/filesystem/error.hpp>
#include <kernel/filesystem/ext2/filesystem.hpp>
#include <kernel/filesystem/inode.hpp>
#include <kapi/system.hpp>
-#include <kstd/memory>
+#include <kstd/memory.hpp>
+#include <kstd/result.hpp>
+#include <kstd/system_error.hpp>
#include <array>
@@ -18,7 +21,8 @@ namespace kernel::filesystem
};
} // namespace
- auto filesystem::probe_and_mount(kstd::shared_ptr<inode> const & backing_inode) -> kstd::shared_ptr<filesystem>
+ auto filesystem::probe_and_mount(kstd::shared_ptr<inode> const & backing_inode)
+ -> kstd::result<kstd::shared_ptr<filesystem>>
{
if (!backing_inode)
{
@@ -28,16 +32,16 @@ namespace kernel::filesystem
for (auto & factory : filesystem_factories)
{
auto fs = factory();
- if (fs->mount(backing_inode) == operation_result::success)
+ if (fs->mount(backing_inode))
{
return fs;
}
}
- return nullptr;
+ return kstd::failure(vfs_errc::unsupported_filesystem);
}
- auto filesystem::mount(kstd::shared_ptr<inode> const & backing_inode) -> operation_result
+ auto filesystem::mount(kstd::shared_ptr<inode> const & backing_inode) -> kstd::result<void>
{
if (!backing_inode)
{
@@ -45,7 +49,7 @@ namespace kernel::filesystem
}
m_backing_inode = backing_inode;
- return operation_result::success;
+ return kstd::success();
}
auto filesystem::root_inode() const -> kstd::shared_ptr<inode> const &