The previous function works well for the labels supporting naming
partition, but not for these which don't. If the disk label does not
support partition naming, two exceptions will be raised. Even after the first
error indicates it does not support name, parted yet asks user for
name in iteractive mode.

First check if the disk label supports partition naming and if it
does, it will continue; otherwise, it will stop and raise an
exception.

Signed-off-by: Wang Dong <[email protected]>
Signed-off-by: Hendrik Brueckner <[email protected]>
---
 parted/parted.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/parted/parted.c b/parted/parted.c
index 0636e58..878068d 100644
--- a/parted/parted.c
+++ b/parted/parted.c
@@ -871,6 +871,13 @@ do_name (PedDevice** dev, PedDisk** diskp)
         if (!*diskp)
                 goto error;
 
+        if (!ped_disk_type_check_feature((*diskp)->type, 
PED_DISK_TYPE_PARTITION_NAME)) {
+                ped_exception_throw (PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
+                                     _("%s disk labels do not support 
partition name."),
+                                    (*diskp)->type->name);
+                goto error;
+        }
+
         if (!command_line_get_partition (_("Partition number?"), *diskp, 
&part))
                 goto error;
 
-- 
2.8.4


Reply via email to