aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-08-22 12:59:11 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-08-26 11:16:16 +0200
commitf3183a93826b1dabe4a446c2d834eae7de06b3e0 (patch)
tree567b7259711967c1343a34d0a9de3be480418624
parent528fdc5cc26cd16dc889a11fdc994ae6b0e08e37 (diff)
downloadkernel-f3183a93826b1dabe4a446c2d834eae7de06b3e0.tar.xz
kernel-f3183a93826b1dabe4a446c2d834eae7de06b3e0.zip
kernel/fs: remove backing inode from base
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.cpp5
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.hpp6
-rw-r--r--kernel/kernel/filesystem/filesystem.cpp4
-rw-r--r--kernel/kernel/filesystem/filesystem.hpp8
4 files changed, 11 insertions, 12 deletions
diff --git a/kernel/kernel/filesystem/ext2/filesystem.cpp b/kernel/kernel/filesystem/ext2/filesystem.cpp
index c5808a60..c6180fe1 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.cpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.cpp
@@ -725,6 +725,11 @@ namespace kernel::filesystem::ext2
return kstd::success();
}
+ auto filesystem::backing_inode() const -> kstd::shared_ptr<kernel::filesystem::inode> const &
+ {
+ return m_backing_inode;
+ }
+
auto filesystem::read_block(uint32_t block_number, void * buffer) const -> kstd::result<kstd::bytes>
{
auto const block_offset = static_cast<size_t>(block_number) * block_size();
diff --git a/kernel/kernel/filesystem/ext2/filesystem.hpp b/kernel/kernel/filesystem/ext2/filesystem.hpp
index f53e74da..23629928 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.hpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.hpp
@@ -155,6 +155,11 @@ namespace kernel::filesystem::ext2
auto write_global_block_number_to_inode_block_index(size_t block_index, inode_data & data,
uint32_t global_block_number) -> kstd::result<void>;
+ //! Get the backing inode of the file system.
+ //!
+ //! @return A reference to the backing inode.
+ [[nodiscard]] auto backing_inode() const -> kstd::shared_ptr<kernel::filesystem::inode> const &;
+
private:
struct indirect_level
{
@@ -192,6 +197,7 @@ namespace kernel::filesystem::ext2
superblock m_superblock{};
kstd::vector<block_group_descriptor> m_block_group_descriptors;
+ kstd::shared_ptr<kernel::filesystem::inode> m_backing_inode;
};
} // namespace kernel::filesystem::ext2
diff --git a/kernel/kernel/filesystem/filesystem.cpp b/kernel/kernel/filesystem/filesystem.cpp
index 362c4d1e..d2e3adde 100644
--- a/kernel/kernel/filesystem/filesystem.cpp
+++ b/kernel/kernel/filesystem/filesystem.cpp
@@ -29,8 +29,4 @@ namespace kernel::filesystem
return kstd::failure(vfs_errc::unsupported_filesystem);
}
- auto filesystem::backing_inode() const -> kstd::shared_ptr<inode> const &
- {
- return m_backing_inode;
- }
} // namespace kernel::filesystem \ No newline at end of file
diff --git a/kernel/kernel/filesystem/filesystem.hpp b/kernel/kernel/filesystem/filesystem.hpp
index dccc9434..cae36967 100644
--- a/kernel/kernel/filesystem/filesystem.hpp
+++ b/kernel/kernel/filesystem/filesystem.hpp
@@ -61,14 +61,6 @@ namespace kernel::filesystem
kapi::filesystem::file_type type,
std::optional<kapi::filesystem::device_number> raw_device = std::nullopt)
-> kstd::result<kstd::shared_ptr<inode>> = 0;
-
- //! Get the backing inode of the file system.
- //!
- //! @return A reference to the backing inode.
- [[nodiscard]] auto backing_inode() const -> kstd::shared_ptr<inode> const &;
-
- protected:
- kstd::shared_ptr<inode> m_backing_inode{};
};
} // namespace kernel::filesystem