diff --git a/src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp b/src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp index 1abac70b50..a5204164ef 100644 --- a/src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp @@ -42,6 +42,9 @@ PackageFSRoot::PackageFSRoot(dev_t deviceID, ino_t nodeID) PackageFSRoot::~PackageFSRoot() { + if (fPackageLinksDirectory != NULL) + fPackageLinksDirectory->ReleaseReference(); + rw_lock_destroy(&fLock); } diff --git a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp index f39acd1b3e..37a08d49b4 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Volume.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/Volume.cpp @@ -1863,7 +1863,7 @@ Volume::_RemovePackageLinksDirectory() if (packageLinksDirectory->Parent() == fRootDirectory) { packageLinksDirectory->SetListener(NULL); - _RemovePackageLinksNode(packageLinksDirectory); + fRootDirectory->RemoveChild(packageLinksDirectory); packageLinksDirectory->SetParent(NULL); } }