diff --git a/headers/private/storage/PartitioningInfo.h b/headers/private/storage/PartitioningInfo.h index 9b9ac43360..0d779e7692 100644 --- a/headers/private/storage/PartitioningInfo.h +++ b/headers/private/storage/PartitioningInfo.h @@ -24,7 +24,7 @@ public: int32 CountPartitionableSpaces() const; private: - status_t _SetTo(partition_id partition); + status_t _SetTo(partition_id partition, int32 changeCounter); friend class BPartition; diff --git a/src/kits/storage/DiskSystem.cpp b/src/kits/storage/DiskSystem.cpp index 55e159e890..23fb915bac 100644 --- a/src/kits/storage/DiskSystem.cpp +++ b/src/kits/storage/DiskSystem.cpp @@ -226,6 +226,7 @@ BDiskSystem::GetNextSupportedType(BPartition *partition, int32 *cookie, return B_BAD_VALUE; } return _kern_get_next_supported_partition_type(partition->_ShadowID(), + partition->_ChangeCounter(), cookie, type); } @@ -260,7 +261,8 @@ BDiskSystem::IsSubSystemFor(BPartition *parent) const { return (InitCheck() == B_OK && parent && parent->_IsShadow() - && _kern_is_sub_disk_system_for(fID, parent->_ShadowID())); + && _kern_is_sub_disk_system_for(fID, parent->_ShadowID(), + parent->_ChangeCounter())); } // _SetTo diff --git a/src/kits/storage/PartitioningInfo.cpp b/src/kits/storage/PartitioningInfo.cpp index ac7e2ec98d..0f593912ee 100644 --- a/src/kits/storage/PartitioningInfo.cpp +++ b/src/kits/storage/PartitioningInfo.cpp @@ -62,7 +62,7 @@ BPartitioningInfo::CountPartitionableSpaces() const // _SetTo status_t -BPartitioningInfo::_SetTo(partition_id partition) +BPartitioningInfo::_SetTo(partition_id partition, int32 changeCounter) { Unset(); status_t error = B_OK; @@ -70,8 +70,8 @@ BPartitioningInfo::_SetTo(partition_id partition) int32 count = 0; int32 actualCount = 0; do { - error = _kern_get_partitionable_spaces(partition, buffer, - count, &actualCount); + error = _kern_get_partitionable_spaces(partition, changeCounter, + buffer, count, &actualCount); if (error == B_BUFFER_OVERFLOW) { // buffer to small re-allocate it if (buffer)