diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp index 966e90c81e..cf25dd10ae 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.cpp @@ -364,6 +364,7 @@ PartitionMapHandle::ValidateCreateChild(off_t* _offset, off_t* _size, PartitionType type; if (!type.SetType(typeString) || type.IsEmpty()) return B_BAD_VALUE; + if (type.IsExtended() && fPartitionMap.ExtendedPartitionIndex() >= 0) return B_BAD_VALUE; @@ -556,3 +557,13 @@ PartitionMapHandle::CreateChild(off_t offset, off_t size, return B_OK; } + +// DeleteChild +status_t +PartitionMapHandle::DeleteChild(BMutablePartition* child) +{ + BMutablePartition* parent = child->Parent(); + status_t error = parent->DeleteChild(child); + + return error; +} diff --git a/src/add-ons/disk_systems/intel/PartitionMapAddOn.h b/src/add-ons/disk_systems/intel/PartitionMapAddOn.h index 617dc23802..3623ddd639 100644 --- a/src/add-ons/disk_systems/intel/PartitionMapAddOn.h +++ b/src/add-ons/disk_systems/intel/PartitionMapAddOn.h @@ -62,6 +62,7 @@ public: const char* type, const char* name, const char* parameters, BMutablePartition** child); + virtual status_t DeleteChild(BMutablePartition* child); private: PartitionMap fPartitionMap;