diff --git a/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp index 50b579f719..7c147933d9 100644 --- a/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp @@ -94,6 +94,7 @@ packagefs_unmount(fs_volume* fsVolume) FUNCTION("volume: %p\n", volume); + volume->WriteLock(); volume->Unmount(); delete volume; diff --git a/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp b/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp index f3a43a18fc..db5e417f29 100644 --- a/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp @@ -1775,6 +1775,8 @@ Volume::_CreateShineThroughDirectories(const char* shineThroughSetting) status_t Volume::_PublishShineThroughDirectories() { + NodeWriteLocker rootDirectoryWriteLocker(fRootDirectory); + // Iterate through the root directory children and bind the shine-through // directories to the respective mount point subdirectories. Node* nextNode;