aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem
diff options
context:
space:
mode:
authorMarcel Braun <marcel.braun@ost.ch>2026-05-10 20:07:51 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-05-11 22:34:54 +0200
commitfeab4cd81f2bbc89e55353a54df2575b9c21b514 (patch)
tree9c8767ea7c12aea5ad7f4af465317a61bd4f2a59 /kernel/src/filesystem
parent00aa2c8695b81944798010d81d600038e1f1ef3d (diff)
downloadkernel-feab4cd81f2bbc89e55353a54df2575b9c21b514.tar.xz
kernel-feab4cd81f2bbc89e55353a54df2575b9c21b514.zip
Add method that returns the next ancestor with mount flag set
Diffstat (limited to 'kernel/src/filesystem')
-rw-r--r--kernel/src/filesystem/dentry.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/kernel/src/filesystem/dentry.cpp b/kernel/src/filesystem/dentry.cpp
index a77ce23..6945a27 100644
--- a/kernel/src/filesystem/dentry.cpp
+++ b/kernel/src/filesystem/dentry.cpp
@@ -66,6 +66,16 @@ namespace kernel::filesystem
return path;
}
+ auto dentry::get_ancestor_with_mount_flag() const -> kstd::shared_ptr<dentry>
+ {
+ auto parent = m_parent;
+ while (parent && !parent->has_flag(dentry_flags::mounted))
+ {
+ parent = parent->get_parent();
+ }
+ return parent;
+ }
+
auto dentry::add_child(kstd::shared_ptr<dentry> const & child) -> void
{
m_children.push_back(child);