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