From 4c4e5505b0f2618d1b69236441dae0cdebc5166f Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 21 Sep 2003 19:13:29 +0000 Subject: [PATCH] Added BPartition::Uninitialize(). No CanUninitialize(), but uninitialization does not affect the physical partition, anyway. The system simply marks the partition as uninitialized for the current session -- after rebooting it re-appears unchanged. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4777 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/storage/Partition.h | 1 + src/kits/storage/Partition.cpp | 13 +++++++++++++ 2 files changed, 14 insertions(+) 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