diff --git a/headers/private/storage/Partition.h b/headers/private/storage/Partition.h index b6f1f0b3fe..c68f2be85f 100644 --- a/headers/private/storage/Partition.h +++ b/headers/private/storage/Partition.h @@ -118,6 +118,7 @@ public: const char *parameters); status_t Initialize(const char *diskSystem, const char *name, const char *parameters); + status_t Uninitialize(); // Modification of child partitions diff --git a/src/kits/storage/Partition.cpp b/src/kits/storage/Partition.cpp index 269c8837e1..0c9bd67480 100644 --- a/src/kits/storage/Partition.cpp +++ b/src/kits/storage/Partition.cpp @@ -823,6 +823,19 @@ BPartition::Initialize(const char *diskSystem, const char *name, return error; } +// Uninitialize +status_t +BPartition::Uninitialize() +{ + if (!fPartitionData || !_IsShadow()) + return B_BAD_VALUE; + status_t error = _kern_uninitialize_partition(_ShadowID(), + _ChangeCounter()); + if (error == B_OK) + error = Device()->Update(); + return error; +} + // CanCreateChild bool BPartition::CanCreateChild() const