Module Name:    src
Committed By:   martin
Date:           Sat Jun 11 18:30:02 UTC 2022

Modified Files:
        src/usr.sbin/sysinst: disks.c msg.mi.de msg.mi.en msg.mi.es msg.mi.fr
            msg.mi.pl

Log Message:
Slightly improved error handling when converion from one partition table
format to another is not lossless.


To generate a diff of this commit:
cvs rdiff -u -r1.82 -r1.83 src/usr.sbin/sysinst/disks.c
cvs rdiff -u -r1.39 -r1.40 src/usr.sbin/sysinst/msg.mi.de
cvs rdiff -u -r1.42 -r1.43 src/usr.sbin/sysinst/msg.mi.en
cvs rdiff -u -r1.35 -r1.36 src/usr.sbin/sysinst/msg.mi.es
cvs rdiff -u -r1.40 -r1.41 src/usr.sbin/sysinst/msg.mi.fr
cvs rdiff -u -r1.41 -r1.42 src/usr.sbin/sysinst/msg.mi.pl

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.sbin/sysinst/disks.c
diff -u src/usr.sbin/sysinst/disks.c:1.82 src/usr.sbin/sysinst/disks.c:1.83
--- src/usr.sbin/sysinst/disks.c:1.82	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/disks.c	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: disks.c,v 1.82 2022/06/09 18:26:06 martin Exp $ */
+/*	$NetBSD: disks.c,v 1.83 2022/06/11 18:30:02 martin Exp $ */
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -779,12 +779,13 @@ delete_scheme(struct pm_devs *p)
 }
 
 
-static void
+static bool
 convert_copy(struct disk_partitions *old_parts,
     struct disk_partitions *new_parts)
 {
 	struct disk_part_info oinfo, ninfo;
 	part_id i;
+	bool err = false;
 
 	for (i = 0; i < old_parts->num_part; i++) {
 		if (!old_parts->pscheme->get_part_info(old_parts, i, &oinfo))
@@ -799,17 +800,23 @@ convert_copy(struct disk_partitions *old
 					old_parts->pscheme->
 					    secondary_partitions(
 					    old_parts, oinfo.start, false);
-				if (sec_part)
-					convert_copy(sec_part, new_parts);
+				if (sec_part && !convert_copy(sec_part,
+				    new_parts))
+					err = true;
 			}
 			continue;
 		}
 
 		if (!new_parts->pscheme->adapt_foreign_part_info(new_parts,
-			    &ninfo, old_parts->pscheme, &oinfo))
+			    &ninfo, old_parts->pscheme, &oinfo)) {
+			err = true;
 			continue;
-		new_parts->pscheme->add_partition(new_parts, &ninfo, NULL);
+		}
+		if (!new_parts->pscheme->add_partition(new_parts, &ninfo,
+		    NULL))
+			err = true;
 	}
+	return !err;
 }
 
 bool
@@ -838,10 +845,10 @@ convert_scheme(struct pm_devs *p, bool i
 		return false;
 	}
 
-	convert_copy(old_parts, new_parts);
-
-	if (new_parts->num_part == 0 && old_parts->num_part != 0) {
+	if (!convert_copy(old_parts, new_parts)) {
 		/* need to cleanup */
+		if (err_msg)
+			*err_msg = MSG_cvtscheme_error;
 		new_parts->pscheme->free(new_parts);
 		return false;
 	}

Index: src/usr.sbin/sysinst/msg.mi.de
diff -u src/usr.sbin/sysinst/msg.mi.de:1.39 src/usr.sbin/sysinst/msg.mi.de:1.40
--- src/usr.sbin/sysinst/msg.mi.de:1.39	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/msg.mi.de	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.de,v 1.39 2022/06/09 18:26:06 martin Exp $	*/
+/*	$NetBSD: msg.mi.de,v 1.40 2022/06/11 18:30:02 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -305,6 +305,8 @@ message cvtscheme_keep		{beibehalten (nu
 message cvtscheme_delete	{löschen (alle Daten gehen verloren!)}
 message cvtscheme_convert	{in ein anderes Schema konvertieren}
 message cvtscheme_abort		{abbrechen}
+message cvtscheme_error
+{Nicht alle Partitionen konnten übernommen werden}
 
 /* Called with:				Example
  *  $0 = device name			wd0

Index: src/usr.sbin/sysinst/msg.mi.en
diff -u src/usr.sbin/sysinst/msg.mi.en:1.42 src/usr.sbin/sysinst/msg.mi.en:1.43
--- src/usr.sbin/sysinst/msg.mi.en:1.42	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/msg.mi.en	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.en,v 1.42 2022/06/09 18:26:06 martin Exp $	*/
+/*	$NetBSD: msg.mi.en,v 1.43 2022/06/11 18:30:02 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -292,6 +292,8 @@ message cvtscheme_keep		{keep (use only 
 message cvtscheme_delete	{delete (all data will be lost!)}
 message cvtscheme_convert	{convert to another partitioning method}
 message cvtscheme_abort		{abort}
+message cvtscheme_error
+{Could not convert all partitions}
 
 /* Called with:				Example
  *  $0 = device name			wd0

Index: src/usr.sbin/sysinst/msg.mi.es
diff -u src/usr.sbin/sysinst/msg.mi.es:1.35 src/usr.sbin/sysinst/msg.mi.es:1.36
--- src/usr.sbin/sysinst/msg.mi.es:1.35	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/msg.mi.es	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.es,v 1.35 2022/06/09 18:26:06 martin Exp $	*/
+/*	$NetBSD: msg.mi.es,v 1.36 2022/06/11 18:30:02 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -299,6 +299,8 @@ message cvtscheme_keep		{keep (use only 
 message cvtscheme_delete	{delete (all data will be lost!)}
 message cvtscheme_convert	{convert to another partitioning method}
 message cvtscheme_abort		{abort}
+message cvtscheme_error
+{Could not convert all partitions}
 
 /* Called with:				Example
  *  $0 = device name			wd0

Index: src/usr.sbin/sysinst/msg.mi.fr
diff -u src/usr.sbin/sysinst/msg.mi.fr:1.40 src/usr.sbin/sysinst/msg.mi.fr:1.41
--- src/usr.sbin/sysinst/msg.mi.fr:1.40	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/msg.mi.fr	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.fr,v 1.40 2022/06/09 18:26:06 martin Exp $	*/
+/*	$NetBSD: msg.mi.fr,v 1.41 2022/06/11 18:30:02 martin Exp $	*/
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -303,6 +303,8 @@ message cvtscheme_keep		{keep (use only 
 message cvtscheme_delete	{delete (all data will be lost!)}
 message cvtscheme_convert	{convert to another partitioning method}
 message cvtscheme_abort		{abort}
+message cvtscheme_error
+{Could not convert all partitions}
 
 /* Called with:				Example
  *  $0 = device name			wd0

Index: src/usr.sbin/sysinst/msg.mi.pl
diff -u src/usr.sbin/sysinst/msg.mi.pl:1.41 src/usr.sbin/sysinst/msg.mi.pl:1.42
--- src/usr.sbin/sysinst/msg.mi.pl:1.41	Thu Jun  9 18:26:06 2022
+++ src/usr.sbin/sysinst/msg.mi.pl	Sat Jun 11 18:30:02 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: msg.mi.pl,v 1.41 2022/06/09 18:26:06 martin Exp $	*/
+/*	$NetBSD: msg.mi.pl,v 1.42 2022/06/11 18:30:02 martin Exp $	*/
 /*	Based on english version: */
 /*	NetBSD: msg.mi.pl,v 1.36 2004/04/17 18:55:35 atatat Exp       */
 
@@ -286,6 +286,8 @@ message cvtscheme_keep		{zostaw (uzyj ty
 message cvtscheme_delete	{skasuj (wszystkie dane beda utracone!)}
 message cvtscheme_convert	{uzyj innego typu tablicy partycji}
 message cvtscheme_abort		{anuluj}
+message cvtscheme_error
+{Could not convert all partitions}
 
 /* Called with:				Example
  *  $0 = device name			wd0

Reply via email to