--- libparted/arch/linux.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) Index: parted-3.2/libparted/arch/linux.c =================================================================== --- parted-3.2.orig/libparted/arch/linux.c +++ parted-3.2/libparted/arch/linux.c @@ -2342,11 +2342,17 @@ _device_get_part_path (PedDevice const * result = zasprintf ("%.*s/part%d", (int) (path_len - 5), devpath, num); } else { - char const *p = (dev->type == PED_DEVICE_DAC960 - || dev->type == PED_DEVICE_CPQARRAY + const char *p; + if (dev->type == PED_DEVICE_CPQARRAY || + dev->type == PED_DEVICE_SDMMC) + p = "p"; + else if (dev->type == PED_DEVICE_DM) + p = "-part"; + else + p = (dev->type == PED_DEVICE_DAC960 || dev->type == PED_DEVICE_ATARAID || isdigit (devpath[path_len - 1]) - ? "p" : ""); + ? "_part" : ""); result = zasprintf ("%s%s%d", devpath, p, num); } if (dev->type == PED_DEVICE_DM) @@ -2797,7 +2803,7 @@ _dm_add_partition (PedDisk* disk, const size_t name_len = strlen (dev_name); vol_name = zasprintf ("%s%s%d", dev_name, - isdigit (dev_name[name_len - 1]) ? "p" : "", + isdigit (dev_name[name_len - 1]) ? "-part" : "", part->num); if (vol_name == NULL) goto err;