aboutsummaryrefslogtreecommitdiff
path: root/kernel/src
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src')
-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);