From: Karel Zak Date: Mon, 10 Jul 2017 10:32:43 +0000 (+0200) Subject: fdisk: reset context after failed script X-Git-Tag: v2.31-rc1~226 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=dda4743b45e6284967a165dc2e023c165b2c1ec6;p=thirdparty%2Futil-linux.git fdisk: reset context after failed script Addresses: https://github.com/karelzak/util-linux/issues/481 Signed-off-by: Karel Zak --- diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c index 9ab28c43f9..9245bac8a0 100644 --- a/disk-utils/fdisk-menu.c +++ b/disk-utils/fdisk-menu.c @@ -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);