--- libparted/arch/linux.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) Index: parted-3.1/libparted/arch/linux.c =================================================================== --- parted-3.1.orig/libparted/arch/linux.c +++ parted-3.1/libparted/arch/linux.c @@ -2239,8 +2239,11 @@ _device_get_part_path (PedDevice *dev, i result = zasprintf ("%.*s/part%d", (int) (path_len - 5), dev->path, num); } else { - char const *p = (dev->type == PED_DEVICE_DAC960 - || dev->type == PED_DEVICE_CPQARRAY + const char *p; + if (dev->type == PED_DEVICE_CPQARRAY) + p = "p"; + else + p = (dev->type == PED_DEVICE_DAC960 || dev->type == PED_DEVICE_ATARAID || isdigit (dev->path[path_len - 1]) ? "_part" : "");