OSDN Git Service

libparted: remove has_partitions check to allow loopback partitions
authorPhillip Susi <psusi@cfl.rr.com>
Sat, 17 Dec 2011 04:05:39 +0000 (23:05 -0500)
committerJim Meyering <meyering@redhat.com>
Thu, 5 Jan 2012 17:56:12 +0000 (18:56 +0100)
Commit 1b766b69 added the _has_partitions function to check if a device
was a loop device and if so, skip updating the kernel partition table
because loop devices did not support partitions.  This function never
worked anyway, and loop devices now (since linux 3.2) support
partitions, so remove this crufty code.
* libparted/arch/linux.c (_has_partitions): Remove function and
all uses.

libparted/arch/linux.c

index 5c22276..0e12ab0 100644 (file)
@@ -2314,18 +2314,6 @@ _partition_is_mounted (const PedPartition *part)
        return !!status;
 }
 
-static int _GL_ATTRIBUTE_PURE
-_has_partitions (const PedDisk* disk)
-{
-        PED_ASSERT(disk != NULL);
-
-        /* Some devices can't be partitioned. */
-        if (!strcmp (disk->type->name, "loop"))
-                return 0;
-
-        return 1;
-}
-
 static int
 linux_partition_is_busy (const PedPartition* part)
 {
@@ -2368,9 +2356,6 @@ _blkpg_add_partition (PedDisk* disk, const PedPartition *part)
         PED_ASSERT(disk != NULL);
         PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT == 0);
 
-        if (!_has_partitions (disk))
-                return 0;
-
         if (ped_disk_type_check_feature (disk->type,
                                          PED_DISK_TYPE_PARTITION_NAME))
                 vol_name = ped_partition_get_name (part);
@@ -2419,9 +2404,6 @@ _blkpg_remove_partition (PedDisk* disk, int n)
 {
         struct blkpg_partition  linux_part;
 
-        if (!_has_partitions (disk))
-                return 0;
-
         memset (&linux_part, 0, sizeof (linux_part));
         linux_part.pno = n;
         return _blkpg_part_command (disk->dev, &linux_part,
@@ -2743,9 +2725,6 @@ _dm_add_partition (PedDisk* disk, PedPartition* part)
         char*           params = NULL;
         LinuxSpecific*  arch_specific = LINUX_SPECIFIC (disk->dev);
 
-        if (!_has_partitions(disk))
-                return 0;
-
         /* Get map name from devicemapper */
         struct dm_task *task = dm_task_create (DM_DEVICE_INFO);
         if (!task)
@@ -2846,9 +2825,6 @@ _have_blkpg ()
 static int
 linux_disk_commit (PedDisk* disk)
 {
-        if (!_has_partitions (disk))
-                return 1;
-
 #ifdef ENABLE_DEVICE_MAPPER
         if (disk->dev->type == PED_DEVICE_DM)
                 return _dm_reread_part_table (disk);