diff options
author | Karel Zak | 2017-07-10 12:32:43 +0200 |
---|---|---|
committer | Karel Zak | 2017-07-10 12:34:47 +0200 |
commit | dda4743b45e6284967a165dc2e023c165b2c1ec6 (patch) | |
tree | e5c1620a08ab6cad3a77e9753ad05aac6306ce4d /disk-utils | |
parent | libfdisk: add fdisk_reassign_device() (diff) | |
download | kernel-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.c | 10 |
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); |