aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/filesystem/vfs.cpp
diff options
context:
space:
mode:
authorLukas Oesch <lukasoesch20@gmail.com>2026-05-05 20:07:37 +0200
committerLukas Oesch <lukasoesch20@gmail.com>2026-05-05 20:07:37 +0200
commitb7fba373341dd44b53642d7233396efbef4526b2 (patch)
treec09a7a57489319746608d6c61639465ae0db5241 /kernel/src/filesystem/vfs.cpp
parent265ac82029665921bd95d74411682968ee0d4ada (diff)
downloadkernel-b7fba373341dd44b53642d7233396efbef4526b2.tar.xz
kernel-b7fba373341dd44b53642d7233396efbef4526b2.zip
avoid to traverse back over the root
Diffstat (limited to 'kernel/src/filesystem/vfs.cpp')
-rw-r--r--kernel/src/filesystem/vfs.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/kernel/src/filesystem/vfs.cpp b/kernel/src/filesystem/vfs.cpp
index 4defc81..7f21a5c 100644
--- a/kernel/src/filesystem/vfs.cpp
+++ b/kernel/src/filesystem/vfs.cpp
@@ -186,22 +186,17 @@ namespace kernel::filesystem
if (current_dentry == current_mount->root_dentry())
{
- // change the mount point
- if (auto parent_mount = current_mount->get_parent_mount())
+ if (current_mount->get_mount_path() == "/")
{
- current_mount = parent_mount;
- current_dentry = parent_dentry;
+ continue;
}
- if (!parent_dentry)
+ if (auto parent_mount = current_mount->get_parent_mount())
{
- parent_dentry = current_mount->root_dentry();
+ current_mount = parent_mount;
+ current_dentry = parent_dentry;
}
}
- else if (!parent_dentry)
- {
- return nullptr;
- }
current_dentry = parent_dentry;
continue;