]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
fdisk: reset context after failed script
authorKarel Zak <kzak@redhat.com>
Mon, 10 Jul 2017 10:32:43 +0000 (12:32 +0200)
committerKarel Zak <kzak@redhat.com>
Mon, 10 Jul 2017 10:34:47 +0000 (12:34 +0200)
Addresses: https://github.com/karelzak/util-linux/issues/481
Signed-off-by: Karel Zak <kzak@redhat.com>
disk-utils/fdisk-menu.c

index 9ab28c43f99fbeb8eeb84e9cf8142938ec1871f8..9245bac8a0998ff17d0584fdea9b699ad483acf3 100644 (file)
@@ -465,9 +465,15 @@ static int script_read(struct fdisk_context *cxt)
                fdisk_warn(cxt, _("Cannot open %s"), filename);
        else if (!sc)
                fdisk_warnx(cxt, _("Failed to parse script file %s"), filename);
-       else if (fdisk_apply_script(cxt, sc) != 0)
+       else if (fdisk_apply_script(cxt, sc) != 0) {
                fdisk_warnx(cxt, _("Failed to apply script %s"), filename);
-       else
+               fdisk_warnx(cxt, _("Resetting fdisk!"));
+               rc = fdisk_reassign_device(cxt);
+                if (rc == 0 && !fdisk_has_label(cxt)) {
+                        fdisk_info(cxt, _("Device does not contain a recognized partition table."));
+                        fdisk_create_disklabel(cxt, NULL);
+               }
+       } else
                fdisk_info(cxt, _("Script successfully applied."));
 
        fdisk_unref_script(sc);