diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-06-14 15:28:55 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-06-14 15:28:55 +0200 |
| commit | dcfb1f3eb161c1e096626894667dfd2248893f7d (patch) | |
| tree | 416a43826fe87174969a2e4cc7b2d589f6335ecd /kernel/src | |
| parent | dd6537650ca7446a30b54aced340e17ad1b19f10 (diff) | |
| download | kernel-dcfb1f3eb161c1e096626894667dfd2248893f7d.tar.xz kernel-dcfb1f3eb161c1e096626894667dfd2248893f7d.zip | |
kernel/vfs: fix reference cycle for dentries
Diffstat (limited to 'kernel/src')
| -rw-r--r-- | kernel/src/filesystem/dentry.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/src/filesystem/dentry.cpp b/kernel/src/filesystem/dentry.cpp index 3d8e01a..01de276 100644 --- a/kernel/src/filesystem/dentry.cpp +++ b/kernel/src/filesystem/dentry.cpp @@ -34,9 +34,9 @@ namespace kernel::filesystem return m_inode; } - auto dentry::parent() const -> kstd::shared_ptr<dentry> const & + auto dentry::parent() const -> kstd::shared_ptr<dentry> { - return m_parent; + return m_parent.lock(); } auto dentry::name() const -> std::string_view @@ -48,7 +48,7 @@ namespace kernel::filesystem { kstd::string path = m_name; - auto parent = m_parent; + auto parent = this->parent(); while (parent) { auto parent_name = parent->m_name; @@ -61,7 +61,7 @@ namespace kernel::filesystem path = parent_name + "/" + path; } - parent = parent->m_parent; + parent = parent->parent(); } return path; |
