diff options
| author | Marcel Braun <marcel.braun@ost.ch> | 2026-05-11 20:48:03 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-05-11 22:37:29 +0200 |
| commit | 5d72c256d4e2b8a9d2fd70e5a27e883a0f733e50 (patch) | |
| tree | 3cb736b269ae576eb1799a4f6b337028b6f6cc71 /kernel/src/filesystem/mount_table.cpp | |
| parent | 763227e31adf924a5dfe3139db158e26162294a0 (diff) | |
| download | kernel-5d72c256d4e2b8a9d2fd70e5a27e883a0f733e50.tar.xz kernel-5d72c256d4e2b8a9d2fd70e5a27e883a0f733e50.zip | |
Add is_mount_root flag to dentry and use in find_mount_root_dentry
Diffstat (limited to 'kernel/src/filesystem/mount_table.cpp')
| -rw-r--r-- | kernel/src/filesystem/mount_table.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/src/filesystem/mount_table.cpp b/kernel/src/filesystem/mount_table.cpp index 30a94f4..74c18ca 100644 --- a/kernel/src/filesystem/mount_table.cpp +++ b/kernel/src/filesystem/mount_table.cpp @@ -7,7 +7,6 @@ #include <kstd/vector> #include <algorithm> -#include <cstddef> #include <ranges> #include <string_view> @@ -56,7 +55,11 @@ namespace kernel::filesystem m_mounts.push_back(mount); if (auto mount_dentry = mount->get_mount_dentry()) { - mount_dentry->set_flag(dentry::dentry_flags::mounted); + mount_dentry->set_flag(dentry::dentry_flags::is_mount_point); + } + if (auto root_dentry = mount->get_root_dentry()) + { + root_dentry->set_flag(dentry::dentry_flags::is_mount_root); } } @@ -77,7 +80,7 @@ namespace kernel::filesystem return operation_result::has_child_mounts; } - mount->get_mount_dentry()->unset_flag(dentry::dentry_flags::mounted); + mount->get_mount_dentry()->unset_flag(dentry::dentry_flags::is_mount_point); m_mounts.erase(std::ranges::find(m_mounts, mount)); return operation_result::removed; } |
