This is not necessary IMO. parted (master) correctly creates a partition on a device (its a mapped device, but a device none the less). additionally you can create a filesystem on top of this partition and mount it and use it as if it were a normal device.
If the issue is related to the partition being available after boot this might be an issue that is solvable with tools like mkinitrd where the partitions must be activated with commands like kpartx for them to be available as /home or swap or whatever. Taking this into account, I don't think this patch is of any relevance regards. ----- "Colin Watson" <[email protected]> wrote: > Don't try to call BLKPG ioctls or tell device-mapper to create > partitions on disks that can't be partitioned. This fixes the > creation > of bogus "/dev/mapper/vg-lvp1"-type devices for LVM logical volumes. > > Signed-off-by: Colin Watson <[email protected]> > > diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c > index 83e24c8..a2af223 100644 > --- a/libparted/arch/linux.c > +++ b/libparted/arch/linux.c > @@ -2166,6 +2166,18 @@ linux_partition_is_busy (const PedPartition* > part) > } > > static int > +_has_partitions (const PedDisk* disk) > +{ > + PED_ASSERT(disk != NULL, return 0); > + > + /* Some devices can't be partitioned. */ > + if (!strcmp (disk->type->name, "loop")) > + return 0; > + > + return 1; > +} > + > +static int > _blkpg_part_command (PedDevice* dev, struct blkpg_partition* part, > int op) > { > LinuxSpecific* arch_specific = LINUX_SPECIFIC > (dev); > @@ -2190,6 +2202,9 @@ _blkpg_add_partition (PedDisk* disk, const > PedPartition *part) > PED_ASSERT(disk->dev->sector_size % PED_SECTOR_SIZE_DEFAULT > == 0, > return 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); > @@ -2238,6 +2253,9 @@ _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, > @@ -2421,6 +2439,9 @@ _dm_add_partition (PedDisk* disk, PedPartition* > part) > char* dev_name = NULL; > char* params = NULL; > > + if (!_has_partitions(disk)) > + return 0; > + > dev_name = _device_get_part_path (disk->dev, part->num); > if (!dev_name) > return 0; > > -- > Colin Watson > [[email protected]] > > _______________________________________________ > parted-devel mailing list > [email protected] > http://lists.alioth.debian.org/mailman/listinfo/parted-devel -- Joel Andres Granados Red Hat / Brno Czech Republic _______________________________________________ parted-devel mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/parted-devel

