File libparted-partition-naming.patch of Package parted.30108

From: Petr Uzel <petr.uzel@suse.cz>
Subject: libparted: Change partition naming for SUSE needs
References: bsc#1056508
Patch-mainline: no, custom SUSE patch

Device mapper partitions always use the suffix "-part%d" for
partition names. Other devices with a trailing number in their
name use the "p%d" suffix. All other devices use the "%d" suffix.

YaST depends on this.

[mwilck: Fixed dm part name in _dm_add_partition(), bsc#1056508]
[sparschauer: Wrote the patch description]
[sparschauer: Dropped "_part" suffix, bsc#1078820, bsc#1081547]
Signed-off-by: Sebastian Parschauer <sparschauer@suse.de>
---
 libparted/arch/linux.c |   19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -2341,11 +2341,18 @@ _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
-                                 || dev->type == PED_DEVICE_ATARAID
-                                 || isdigit (devpath[path_len - 1])
-                                 ? "p" : "");
+                char const *p;
+                if (dev->type == PED_DEVICE_ATARAID ||
+                    dev->type == PED_DEVICE_CPQARRAY ||
+                    dev->type == PED_DEVICE_DAC960 ||
+                    dev->type == PED_DEVICE_SDMMC)
+                        p = "p";
+                else if (dev->type == PED_DEVICE_DM)
+                        p = "-part";
+                else
+                        p = (isdigit (devpath[path_len - 1])
+                             ? "p" : "");
+
                 result = zasprintf ("%s%s%d", devpath, p, num);
         }
         if (dev->type == PED_DEVICE_DM)
@@ -2723,7 +2730,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" : "",
+                              "-part",
                               part->num);
         if (vol_name == NULL)
                 goto err;
openSUSE Build Service is sponsored by