Author: bonefish Date: 2011-06-13 03:38:03 +0200 (Mon, 13 Jun 2011) New Revision: 42141 Changeset: https://dev.haiku-os.org/changeset/42141 Modified: haiku/trunk/headers/private/kernel/disk_device_manager/ddm_modules.h haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.h haiku/trunk/src/system/kernel/disk_device_manager/KPartitioningSystem.cpp Log: partition_module_info::uninitialize(): Added block size parameter for convenience. Modified: haiku/trunk/headers/private/kernel/disk_device_manager/ddm_modules.h =================================================================== --- haiku/trunk/headers/private/kernel/disk_device_manager/ddm_modules.h 2011-06-13 01:27:13 UTC (rev 42140) +++ haiku/trunk/headers/private/kernel/disk_device_manager/ddm_modules.h 2011-06-13 01:38:03 UTC (rev 42141) @@ -100,7 +100,7 @@ status_t (*initialize)(int fd, partition_id partition, const char* name, const char *parameters, off_t partitionSize, disk_job_id job); status_t (*uninitialize)(int fd, partition_id partition, - off_t partitionSize, disk_job_id job); + off_t partitionSize, uint32 blockSize, disk_job_id job); status_t (*create_child)(int fd, partition_id partition, off_t offset, off_t size, const char* type, const char* name, const char* parameters, disk_job_id job, Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp 2011-06-13 01:27:13 UTC (rev 42140) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp 2011-06-13 01:38:03 UTC (rev 42141) @@ -1287,25 +1287,11 @@ status_t pm_uninitialize(int fd, partition_id partitionID, off_t partitionSize, - disk_job_id job) + uint32 blockSize, disk_job_id job) { - // get partition's block size - size_t blockSize; - { - PartitionReadLocker locker(partitionID); - if (!locker.IsLocked()) - return B_ERROR; + if (blockSize == 0) + return B_BAD_VALUE; - partition_data* partition = get_partition(partitionID); - if (partition == NULL) - return B_BAD_VALUE; - update_disk_device_job_progress(job, 0.0); - - blockSize = partition->block_size; - if (blockSize == 0) - return B_BAD_VALUE; - } - // We overwrite the first block, which contains the partition table. // Allocate a buffer, we can clear and write. void* block = malloc(blockSize); Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.h =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.h 2011-06-13 01:27:13 UTC (rev 42140) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/intel/write_support.h 2011-06-13 01:38:03 UTC (rev 42141) @@ -49,7 +49,7 @@ status_t pm_initialize(int fd, partition_id partitionID, const char* name, const char* parameters, off_t partitionSize, disk_job_id job); status_t pm_uninitialize(int fd, partition_id partitionID, - off_t partitionSize, disk_job_id job); + off_t partitionSize, uint32 blockSize, disk_job_id job); status_t pm_create_child(int fd, partition_id partitionID, off_t offset, off_t size, const char* type, const char* name, const char* parameters, disk_job_id job, Modified: haiku/trunk/src/system/kernel/disk_device_manager/KPartitioningSystem.cpp =================================================================== --- haiku/trunk/src/system/kernel/disk_device_manager/KPartitioningSystem.cpp 2011-06-13 01:27:13 UTC (rev 42140) +++ haiku/trunk/src/system/kernel/disk_device_manager/KPartitioningSystem.cpp 2011-06-13 01:38:03 UTC (rev 42141) @@ -429,7 +429,8 @@ return result; // let the module do its job - result = fModule->uninitialize(fd, partition->ID(), partition->Size(), job); + result = fModule->uninitialize(fd, partition->ID(), partition->Size(), + partition->BlockSize(), job); // cleanup and return close(fd);