diff --git a/src/add-ons/kernel/file_systems/packagefs/indices/Index.cpp b/src/add-ons/kernel/file_systems/packagefs/indices/Index.cpp index 82e15ed041..b091ca307c 100644 --- a/src/add-ons/kernel/file_systems/packagefs/indices/Index.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/indices/Index.cpp @@ -77,7 +77,7 @@ Index::Dump() if (GetIterator(it)) { while (Node* node = it.Next()) { PRINT(" node: `%s', dir: %" B_PRIdINO "\n", - node->Name().Data(), node->Parent()->ID()); + node->Name().Data(), node->GetParentUnchecked()->ID()); } } ) 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 b0d02cbffd..124bc937ed 100644 --- a/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp @@ -148,7 +148,7 @@ packagefs_lookup(fs_volume* fsVolume, fs_vnode* fsDir, const char* entryName, Node* node = (Node*)fsDir->private_node; FUNCTION("volume: %p, dir: %p (%" B_PRId64 "), entry: \"%s\"\n", volume, - dir, dir->ID(), entryName); + node, node->ID(), entryName); if (!S_ISDIR(node->Mode())) return B_NOT_A_DIRECTORY; 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 188b0d3a31..cb93d48b1f 100644 --- a/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/volume/Volume.cpp @@ -1923,6 +1923,7 @@ Volume::_AddPackageLinksNode(Node* node) // If this is a directory, recursively add descendants. The directory tree // for the package links isn't deep, so we can do recursion. if (Directory* directory = dynamic_cast(node)) { + DirectoryReadLocker directoryReadLocker(directory); for (Node* child = directory->FirstChild(); child != NULL; child = directory->NextChild(child)) { _AddPackageLinksNode(child); @@ -1937,6 +1938,7 @@ Volume::_RemovePackageLinksNode(Node* node) // If this is a directory, recursively remove descendants. The directory // tree for the package links isn't deep, so we can do recursion. if (Directory* directory = dynamic_cast(node)) { + DirectoryReadLocker directoryReadLocker(directory); for (Node* child = directory->FirstChild(); child != NULL; child = directory->NextChild(child)) { _RemovePackageLinksNode(child);