aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-06-09 10:20:13 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-07-14 21:51:44 +0200
commit423f9e64a315a91a0f87b32cf2f6463b5ae412bb (patch)
treefc44cd91e8588fa080eecc778745093e3a6194e8 /kernel
parentb0236a47309a5ceb2336acbf03460331ce0d0455 (diff)
downloadkernel-423f9e64a315a91a0f87b32cf2f6463b5ae412bb.tar.xz
kernel-423f9e64a315a91a0f87b32cf2f6463b5ae412bb.zip
remove unneeded function
Diffstat (limited to 'kernel')
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.cpp21
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.hpp2
-rw-r--r--kernel/kernel/filesystem/ext2/filesystem.tests.cpp51
3 files changed, 31 insertions, 43 deletions
diff --git a/kernel/kernel/filesystem/ext2/filesystem.cpp b/kernel/kernel/filesystem/ext2/filesystem.cpp
index a5bc5f4d..97f13b93 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.cpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.cpp
@@ -23,7 +23,6 @@
#include <cstddef>
#include <cstdint>
#include <expected>
-#include <optional>
#include <string_view>
#include <tuple>
@@ -220,6 +219,11 @@ namespace kernel::filesystem::ext2
}
}
+ if (auto write_result = write_inode(inode_number, new_inode_data); !write_result)
+ {
+ return kstd::failure(write_result.error());
+ }
+
return new_inode;
}
@@ -663,21 +667,6 @@ namespace kernel::filesystem::ext2
return kstd::success();
}
- auto filesystem::ensure_and_get_block(uint32_t block_number) -> std::optional<uint32_t>
- {
- if (block_number != 0)
- {
- return block_number;
- }
-
- if (auto allocated = allocate_blocks(1))
- {
- return allocated->front();
- }
-
- return std::nullopt;
- }
-
auto filesystem::read_block(uint32_t block_number, void * buffer) const -> kstd::result<size_t>
{
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 e8f72727..03398f00 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.hpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.hpp
@@ -180,8 +180,6 @@ namespace kernel::filesystem::ext2
[[nodiscard]] auto read_inode(uint32_t inode_number) const -> kstd::result<kstd::shared_ptr<inode>>;
[[nodiscard]] auto read_block_number_at_index(uint32_t block_number, size_t index) const -> kstd::result<uint32_t>;
- auto ensure_and_get_block(uint32_t block_number) -> std::optional<uint32_t>;
-
[[nodiscard]] auto block_group_descriptor_table_offset() const -> size_t;
[[nodiscard]] auto block_numbers_per_block() const -> size_t;
diff --git a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
index 277ff385..74e99c26 100644
--- a/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
+++ b/kernel/kernel/filesystem/ext2/filesystem.tests.cpp
@@ -36,7 +36,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture,
REQUIRE_NOTHROW(setup_modules_from_img({"test_img_module"}, {image_path}));
auto boot_device = kernel::devices::storage::management::get().determine_boot_device();
- REQUIRE(boot_device != nullptr);
+ REQUIRE(boot_device);
auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(boot_device);
@@ -45,7 +45,7 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture,
THEN("the root inode is available and is a directory")
{
- REQUIRE(fs.root_inode() != nullptr);
+ REQUIRE(fs.root_inode());
REQUIRE(fs.root_inode()->is_directory());
}
@@ -86,70 +86,71 @@ SCENARIO_METHOD(kernel::tests::filesystem::storage_boot_module_fixture,
REQUIRE_NOTHROW(setup_modules_from_img({"test_img_module"}, {image_path}));
auto boot_device = kernel::devices::storage::management::get().determine_boot_device();
- REQUIRE(boot_device != nullptr);
+ REQUIRE(boot_device);
auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(boot_device);
auto fs = kernel::filesystem::ext2::filesystem{};
- REQUIRE(fs.mount(dev_inode) == kernel::filesystem::filesystem::operation_result::success);
+ REQUIRE(fs.mount(dev_inode));
THEN("a file can be created")
{
auto lookup_result = fs.lookup(fs.root_inode(), "blub");
- REQUIRE(lookup_result == nullptr);
+ REQUIRE(!lookup_result);
auto new_inode = fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::regular);
- REQUIRE(new_inode != nullptr);
- REQUIRE(new_inode->is_regular());
+ REQUIRE(new_inode);
+ REQUIRE(new_inode.value()->is_regular());
lookup_result = fs.lookup(fs.root_inode(), "blub");
- REQUIRE(lookup_result != nullptr);
+ REQUIRE(lookup_result);
}
THEN("a directory can be created")
{
auto lookup_result = fs.lookup(fs.root_inode(), "blub");
- REQUIRE(lookup_result == nullptr);
+ REQUIRE(!lookup_result);
auto new_directory =
fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::directory);
- REQUIRE(new_directory != nullptr);
- REQUIRE(new_directory->is_directory());
+ REQUIRE(new_directory);
+ REQUIRE(new_directory.value()->is_directory());
lookup_result = fs.lookup(fs.root_inode(), "blub");
- REQUIRE(lookup_result != nullptr);
+ REQUIRE(lookup_result);
}
THEN("a directory and a file within can be created")
{
auto new_directory =
fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::directory);
- REQUIRE(new_directory != nullptr);
+ REQUIRE(new_directory);
- auto new_file = fs.create_inode(new_directory, "blub_file", kernel::filesystem::vfs_types::inode_type::regular);
- REQUIRE(new_file != nullptr);
+ auto new_file =
+ fs.create_inode(new_directory.value(), "blub_file", kernel::filesystem::vfs_types::inode_type::regular);
+ REQUIRE(new_file);
- auto lookup_result = fs.lookup(new_directory, "blub_file");
- REQUIRE(lookup_result != nullptr);
- REQUIRE(lookup_result->is_regular());
+ auto lookup_result = fs.lookup(new_directory.value(), "blub_file");
+ REQUIRE(lookup_result);
+ REQUIRE(lookup_result.value()->is_regular());
}
THEN("a file can be created and written to")
{
auto new_inode = fs.create_inode(fs.root_inode(), "blub", kernel::filesystem::vfs_types::inode_type::regular);
- REQUIRE(new_inode != nullptr);
+ REQUIRE(new_inode);
auto buffer = std::vector<std::byte>{std::byte{'H'}, std::byte{'e'}, std::byte{'l'}, std::byte{'l'},
std::byte{'o'}, std::byte{' '}, std::byte{'W'}, std::byte{'o'},
std::byte{'r'}, std::byte{'l'}, std::byte{'d'}, std::byte{'!'}};
- auto bytes_written = new_inode->write(buffer.data(), 0, buffer.size());
+ auto bytes_written = new_inode.value()->write(buffer.data(), 0, buffer.size());
REQUIRE(bytes_written == buffer.size());
auto read_buffer = std::vector<std::byte>(5, std::byte{0xAA});
- auto bytes_read = new_inode->read(read_buffer.data(), 0, read_buffer.size());
+ auto bytes_read = new_inode.value()->read(read_buffer.data(), 0, read_buffer.size());
REQUIRE(bytes_read == read_buffer.size());
- std::string_view result{reinterpret_cast<char *>(read_buffer.data()), static_cast<size_t>(bytes_read)};
+ std::string_view result{reinterpret_cast<char *>(read_buffer.data()), static_cast<size_t>(*bytes_read)};
REQUIRE(result == "Hello");
}
}
@@ -161,7 +162,7 @@ SCENARIO("Ext2 filesystem rejects invalid magic", "[filesystem][ext2][filesystem
GIVEN("a block device that does not contain an ext2 superblock")
{
auto device = kstd::make_shared<kernel::tests::devices::block_device>(0, 0, "mock", block_size, 2 * block_size);
- REQUIRE(device != nullptr);
+ REQUIRE(device);
auto dev_inode = kstd::make_shared<kernel::filesystem::device_inode>(device);
@@ -181,7 +182,7 @@ SCENARIO("Ext2 block mapping includes direct and all indirect levels", "[filesys
GIVEN("a minimally valid ext2 layout with configured indirect block tables")
{
auto device = kstd::make_shared<kernel::tests::devices::block_device>(0, 0, "mock", block_size, 128 * block_size);
- REQUIRE(device != nullptr);
+ REQUIRE(device);
kernel::tests::filesystem::ext2::setup_mock_ext2_layout(*device);
@@ -233,7 +234,7 @@ SCENARIO("Ext2 block writing includes direct and all indirect levels", "[filesys
GIVEN("a mounted ext2 filesystem with free blocks available for indirect table allocation")
{
auto device = kstd::make_shared<kernel::tests::devices::block_device>(0, 0, "mock", block_size, 256 * block_size);
- REQUIRE(device != nullptr);
+ REQUIRE(device);
auto superblock = kernel::filesystem::ext2::superblock{};
superblock.magic = kernel::filesystem::ext2::constants::magic_number;