summaryrefslogtreecommitdiffstats
path: root/disk-utils/fdisk-menu.c
diff options
context:
space:
mode:
authorKarel Zak2017-02-14 15:11:35 +0100
committerKarel Zak2017-02-14 15:13:35 +0100
commit5635d1955091ff7084b7cafc22b48cd5a5b17387 (patch)
treead0a7b362d59ad143f5e9d4fccf5cf2c0b857cdb /disk-utils/fdisk-menu.c
parentsfdisk: improve --wipe functionality (diff)
downloadkernel-qcow2-util-linux-5635d1955091ff7084b7cafc22b48cd5a5b17387.tar.gz
kernel-qcow2-util-linux-5635d1955091ff7084b7cafc22b48cd5a5b17387.tar.xz
kernel-qcow2-util-linux-5635d1955091ff7084b7cafc22b48cd5a5b17387.zip
fdisk: improve --wipe functionality
* always (except --wipe=never) wipe old partition tables * improve warn messages * improve man page Addresses: https://github.com/karelzak/util-linux/issues/410 Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'disk-utils/fdisk-menu.c')
-rw-r--r--disk-utils/fdisk-menu.c33
1 files changed, 18 insertions, 15 deletions
diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c
index 3ea5e3ddd..baac9791a 100644
--- a/disk-utils/fdisk-menu.c
+++ b/disk-utils/fdisk-menu.c
@@ -1032,22 +1032,25 @@ static int createlabel_menu_cb(struct fdisk_context **cxt0,
rc = fdisk_create_disklabel(cxt, "sgi");
break;
}
- return rc;
+ } else {
+ switch (ent->key) {
+ case 'g':
+ rc = fdisk_create_disklabel(cxt, "gpt");
+ break;
+ case 'G':
+ rc = fdisk_create_disklabel(cxt, "sgi");
+ break;
+ case 'o':
+ rc = fdisk_create_disklabel(cxt, "dos");
+ break;
+ case 's':
+ rc = fdisk_create_disklabel(cxt, "sun");
+ break;
+ }
}
- switch (ent->key) {
- case 'g':
- fdisk_create_disklabel(cxt, "gpt");
- break;
- case 'G':
- fdisk_create_disklabel(cxt, "sgi");
- break;
- case 'o':
- fdisk_create_disklabel(cxt, "dos");
- break;
- case 's':
- fdisk_create_disklabel(cxt, "sun");
- break;
- }
+ if (rc == 0 && fdisk_get_collision(cxt))
+ follow_wipe_mode(cxt);
+
return rc;
}