summaryrefslogtreecommitdiffstats
path: root/disk-utils
diff options
context:
space:
mode:
authorKarel Zak2017-07-10 12:32:43 +0200
committerKarel Zak2017-07-10 12:34:47 +0200
commitdda4743b45e6284967a165dc2e023c165b2c1ec6 (patch)
treee5c1620a08ab6cad3a77e9753ad05aac6306ce4d /disk-utils
parentlibfdisk: add fdisk_reassign_device() (diff)
downloadkernel-qcow2-util-linux-dda4743b45e6284967a165dc2e023c165b2c1ec6.tar.gz
kernel-qcow2-util-linux-dda4743b45e6284967a165dc2e023c165b2c1ec6.tar.xz
kernel-qcow2-util-linux-dda4743b45e6284967a165dc2e023c165b2c1ec6.zip
fdisk: reset context after failed script
Addresses: https://github.com/karelzak/util-linux/issues/481 Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'disk-utils')
-rw-r--r--disk-utils/fdisk-menu.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c
index 9ab28c43f..9245bac8a 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);