diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c index 42bffb558..dcd9e796c 100644 --- a/disk-utils/fdisk-menu.c +++ b/disk-utils/fdisk-menu.c @@ -636,17 +636,6 @@ static int generic_menu_cb(struct fdisk_context **cxt0, break; case 'f': rc = fdisk_reorder_partitions(cxt); - switch (rc) { - default: - fdisk_warnx(cxt, _("Failed to fix partitions order.")); - break; - case 0: - fdisk_info(cxt, _("Partitions order fixed.")); - break; - case 1: - fdisk_info(cxt, _("Nothing to do. Ordering is correct already.")); - break; - } break; case 'r': rc = fdisk_enable_details(cxt, 0); diff --git a/libfdisk/src/label.c b/libfdisk/src/label.c index 524a2bfb4..dc0ad9b04 100644 --- a/libfdisk/src/label.c +++ b/libfdisk/src/label.c @@ -583,12 +583,28 @@ int fdisk_toggle_partition_flag(struct fdisk_context *cxt, */ int fdisk_reorder_partitions(struct fdisk_context *cxt) { + int rc; + if (!cxt || !cxt->label) return -EINVAL; if (!cxt->label->op->reorder) return -ENOSYS; - return cxt->label->op->reorder(cxt); + rc = cxt->label->op->reorder(cxt); + + switch (rc) { + case 0: + fdisk_info(cxt, _("Partitions order fixed.")); + break; + case 1: + fdisk_info(cxt, _("Nothing to do. Ordering is correct already.")); + break; + default: + fdisk_warnx(cxt, _("Failed to fix partitions order.")); + break; + } + + return rc; } /*