From 088e0628c21156f6758ca922e7463e1057955983 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 11 Sep 2024 15:13:53 -0400 Subject: [PATCH] packagefs: Acquire some more write locks to fix assertion failures. --- src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp | 1 + src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp | 2 ++ 2 files changed, 3 insertions(+) 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;