[haiku-commits] r42141 - in haiku/trunk: headers/private/kernel/disk_device_manager src/add-ons/kernel/partitioning_systems/intel src/system/kernel/disk_device_manager

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 13 Jun 2011 03:38:04 +0200 (CEST)

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);


Other related posts:

  • » [haiku-commits] r42141 - in haiku/trunk: headers/private/kernel/disk_device_manager src/add-ons/kernel/partitioning_systems/intel src/system/kernel/disk_device_manager - ingo_weinhold