diff --git a/Kernel/Storage/StorageManagement.cpp b/Kernel/Storage/StorageManagement.cpp index 3653639056..96730a31d2 100644 --- a/Kernel/Storage/StorageManagement.cpp +++ b/Kernel/Storage/StorageManagement.cpp @@ -110,10 +110,9 @@ UNMAP_AFTER_INIT OwnPtr StorageManagement::try_to_initialize_par return {}; } -UNMAP_AFTER_INIT void StorageManagement::enumerate_disk_partitions() const +UNMAP_AFTER_INIT void StorageManagement::enumerate_disk_partitions() { VERIFY(!m_storage_devices.is_empty()); - NonnullRefPtrVector partitions; size_t device_index = 0; for (auto& device : m_storage_devices) { auto partition_table = try_to_initialize_partition_table(device); @@ -124,9 +123,8 @@ UNMAP_AFTER_INIT void StorageManagement::enumerate_disk_partitions() const if (!partition_metadata.has_value()) continue; // FIXME: Try to not hardcode a maximum of 16 partitions per drive! - auto disk_partition = DiskPartition::create(const_cast(device), (partition_index + (16 * device_index)), partition_metadata.value()); - MUST(partitions.try_append(disk_partition)); - MUST(const_cast(device).m_partitions.try_append(disk_partition)); + auto disk_partition = DiskPartition::create(device, (partition_index + (16 * device_index)), partition_metadata.value()); + device.add_partition(disk_partition); } device_index++; } diff --git a/Kernel/Storage/StorageManagement.h b/Kernel/Storage/StorageManagement.h index 2acf7ecaeb..570a45ce8c 100644 --- a/Kernel/Storage/StorageManagement.h +++ b/Kernel/Storage/StorageManagement.h @@ -38,7 +38,7 @@ private: void enumerate_controllers(bool force_pio); void enumerate_storage_devices(); - void enumerate_disk_partitions() const; + void enumerate_disk_partitions(); void determine_boot_device(); void determine_boot_device_with_partition_uuid();