diff options
-rw-r--r-- | fdisks/fdisk.c | 3 | ||||
-rw-r--r-- | fdisks/fdiskbsdlabel.c | 31 |
2 files changed, 3 insertions, 31 deletions
diff --git a/fdisks/fdisk.c b/fdisks/fdisk.c index f95266bd1..4bae23755 100644 --- a/fdisks/fdisk.c +++ b/fdisks/fdisk.c @@ -287,6 +287,9 @@ static void write_table(struct fdisk_context *cxt) rc = fdisk_write_disklabel(cxt); if (rc) err(EXIT_FAILURE, _("cannot write disk label")); + if (cxt->parent) + /* nested PT, don't leave */ + return; printf(_("The partition table has been altered!\n\n")); reread_partition_table(cxt, 1); diff --git a/fdisks/fdiskbsdlabel.c b/fdisks/fdiskbsdlabel.c index 3919e5d7d..2bac1b0a7 100644 --- a/fdisks/fdiskbsdlabel.c +++ b/fdisks/fdiskbsdlabel.c @@ -374,51 +374,20 @@ bsd_command_prompt (struct fdisk_context *cxt) return; switch (tolower(buf[0])) { - case 'd': - if (fdisk_ask_partnum(cxt, &n, FALSE) == 0) - xbsd_delete_part(cxt, n); - break; case 'e': xbsd_edit_disklabel (cxt); break; case 'i': xbsd_write_bootstrap (cxt); break; - case 'l': - list_partition_types (cxt); - break; - case 'n': - if (fdisk_ask_partnum(cxt, &n, TRUE) == 0) - xbsd_add_part(cxt, n, 0); - break; - case 'p': - xbsd_print_disklabel (cxt, 0); - break; - case 'q': - close (cxt->dev_fd); - exit ( EXIT_SUCCESS ); - case 'r': - return; case 's': xbsd_print_disklabel (cxt, 1); break; - case 't': - xbsd_change_fstype (cxt); - break; - case 'u': - toggle_units(cxt); - break; - case 'w': - xbsd_write_disklabel (cxt); - break; #if !defined (__alpha__) case 'x': xbsd_link_part (cxt); break; #endif - default: - print_fdisk_menu(cxt); - break; } } } |