diff options
Diffstat (limited to 'kernel/kernel/filesystem/filesystem.cpp')
| -rw-r--r-- | kernel/kernel/filesystem/filesystem.cpp | 16 |
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 & |
