diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-05-05 20:07:37 +0200 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-05-05 20:07:37 +0200 |
| commit | b7fba373341dd44b53642d7233396efbef4526b2 (patch) | |
| tree | c09a7a57489319746608d6c61639465ae0db5241 | |
| parent | 265ac82029665921bd95d74411682968ee0d4ada (diff) | |
| download | kernel-b7fba373341dd44b53642d7233396efbef4526b2.tar.xz kernel-b7fba373341dd44b53642d7233396efbef4526b2.zip | |
avoid to traverse back over the root
| -rw-r--r-- | kernel/src/filesystem/vfs.cpp | 15 |
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; |
