From 90dc69e40a6777185f0d7185f697e33ba7afe647 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Fri, 10 Oct 2014 12:52:24 +0200 Subject: sfdisk: leave on error Signed-off-by: Karel Zak --- disk-utils/sfdisk.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'disk-utils/sfdisk.c') diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index 83b9cf57f..1be40caad 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -1238,6 +1238,10 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) if (!created) { /* create a new disklabel */ rc = fdisk_apply_script_headers(sf->cxt, dp); created = !rc; + if (rc) + fdisk_warnx(sf->cxt, _( + "Failed to apply script headers, " + "disk label not created.")); } if (!rc && partno >= 0) { /* -N , modify partition */ rc = fdisk_set_partition(sf->cxt, partno, pa); @@ -1248,7 +1252,7 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) rc = fdisk_add_partition(sf->cxt, pa, &cur_partno); if (rc) { errno = -rc; - fdisk_warn(sf->cxt, _("failed to add partition")); + fdisk_warn(sf->cxt, _("Failed to add partition")); } } @@ -1256,16 +1260,15 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) if (sf->interactive) sfdisk_print_partition(sf, cur_partno); next_partno = cur_partno + 1; - } else if (pa) { /* error, drop partition from script */ + } else if (pa) /* error, drop partition from script */ fdisk_table_remove_partition(tb, pa); - if (rc == -ENOSPC) { - rc = SFDISK_DONE_ASK; - break; - } - } } else fdisk_info(sf->cxt, _("Script header accepted.")); + if (rc && !sf->interactive) { + rc = SFDISK_DONE_ABORT; + break; + } } while (1); if (!sf->quiet && rc != SFDISK_DONE_ABORT) { -- cgit v1.2.3-55-g7522