diff --git a/headers/private/kernel/disk_device_manager/KPartition.h b/headers/private/kernel/disk_device_manager/KPartition.h index 45dd8d6ca3..ac73d102eb 100644 --- a/headers/private/kernel/disk_device_manager/KPartition.h +++ b/headers/private/kernel/disk_device_manager/KPartition.h @@ -170,7 +170,7 @@ public: void SetChangeFlags(uint32 flags); uint32 ChangeFlags() const; int32 ChangeCounter() const; - void UninitializeContents(bool logChanges = true); + status_t UninitializeContents(bool logChanges = true); void SetAlgorithmData(uint32 data); uint32 AlgorithmData() const; diff --git a/src/kernel/core/disk_device_manager/KPartition.cpp b/src/kernel/core/disk_device_manager/KPartition.cpp index b3c8865948..c7f82091d1 100644 --- a/src/kernel/core/disk_device_manager/KPartition.cpp +++ b/src/kernel/core/disk_device_manager/KPartition.cpp @@ -834,7 +834,7 @@ KPartition::ChangeCounter() const } // UninitializeContents -void +status_t KPartition::UninitializeContents(bool logChanges) { if (DiskSystem()) { @@ -844,7 +844,8 @@ KPartition::UninitializeContents(bool logChanges) | B_PARTITION_CHANGED_FLAGS; // children if (CountChildren() > 0) { - RemoveAllChildren(); + if (!RemoveAllChildren()) + return B_ERROR; flags |= B_PARTITION_CHANGED_CHILDREN; } // volume @@ -890,6 +891,7 @@ KPartition::UninitializeContents(bool logChanges) | B_PARTITION_CHANGED_REPAIR); } } + return B_OK; } // SetAlgorithmData