bin/161926: commit references a PR
dfilter service
dfilter at FreeBSD.ORG
Sun Nov 6 16:40:13 UTC 2011
The following reply was made to PR bin/161926; it has been noted by GNATS.
From: dfilter at FreeBSD.ORG (dfilter service)
To: bug-followup at FreeBSD.org
Cc:
Subject: Re: bin/161926: commit references a PR
Date: Sun, 6 Nov 2011 16:38:04 +0000 (UTC)
Author: nwhitehorn
Date: Sun Nov 6 16:37:50 2011
New Revision: 227222
URL: http://svn.freebsd.org/changeset/base/227222
Log:
MFC r226666,226739,226741:
Avoid showing the user some spurious error messages from GEOM [1] and do
provide error messages instead of silent failure if there are no disks
or no network interfaces in the system [2].
PR: bin/161926 [1], bin/161926 [2]
Approved by: re (kib)
Modified:
stable/9/usr.sbin/bsdinstall/partedit/gpart_ops.c
stable/9/usr.sbin/bsdinstall/partedit/partedit.c
stable/9/usr.sbin/bsdinstall/scripts/netconfig
Directory Properties:
stable/9/usr.sbin/bsdinstall/ (props changed)
Modified: stable/9/usr.sbin/bsdinstall/partedit/gpart_ops.c
==============================================================================
--- stable/9/usr.sbin/bsdinstall/partedit/gpart_ops.c Sun Nov 6 16:37:15 2011 (r227221)
+++ stable/9/usr.sbin/bsdinstall/partedit/gpart_ops.c Sun Nov 6 16:37:50 2011 (r227222)
@@ -392,8 +392,14 @@ gpart_destroy(struct ggeom *lg_geom)
gctl_ro_param(r, "force", sizeof(force), &force);
gctl_ro_param(r, "verb", -1, "destroy");
errstr = gctl_issue(r);
- if (errstr != NULL && errstr[0] != '\0')
- gpart_show_error("Error", NULL, errstr);
+ if (errstr != NULL && errstr[0] != '\0') {
+ /*
+ * Check if we reverted away the existence of the geom
+ * altogether. Show all other errors to the user.
+ */
+ if (strtol(errstr, NULL, 0) != EINVAL)
+ gpart_show_error("Error", NULL, errstr);
+ }
gctl_free(r);
/* And any metadata associated with the partition scheme itself */
@@ -450,6 +456,10 @@ gpart_edit(struct gprovider *pp)
return;
}
+ /* If this is a nested partition, edit as usual */
+ if (strcmp(pp->lg_geom->lg_class->lg_name, "PART") == 0)
+ break;
+
/* Destroy the geom and all sub-partitions */
gpart_destroy(cp->lg_geom);
@@ -507,7 +517,7 @@ editpart:
choice = dlg_form("Edit Partition", "", 0, 0, 0, nitems, items, &junk);
if (choice) /* Cancel pressed */
- return;
+ goto endedit;
/* Check if the label has a / in it */
if (strchr(items[3].text, '/') != NULL) {
@@ -538,6 +548,13 @@ editpart:
items[2].text, (strcmp(oldtype, items[0].text) != 0) ?
newfs : NULL);
+endedit:
+ if (strcmp(oldtype, items[0].text) != 0 && cp != NULL)
+ gpart_destroy(cp->lg_geom);
+ if (strcmp(oldtype, items[0].text) != 0 && strcmp(items[0].text,
+ "freebsd") == 0)
+ gpart_partition(pp->lg_name, "BSD");
+
for (i = 0; i < (sizeof(items) / sizeof(items[0])); i++)
if (items[i].text_free)
free(items[i].text);
Modified: stable/9/usr.sbin/bsdinstall/partedit/partedit.c
==============================================================================
--- stable/9/usr.sbin/bsdinstall/partedit/partedit.c Sun Nov 6 16:37:15 2011 (r227221)
+++ stable/9/usr.sbin/bsdinstall/partedit/partedit.c Sun Nov 6 16:37:50 2011 (r227222)
@@ -70,7 +70,7 @@ main(int argc, const char **argv)
{
struct partition_metadata *md;
const char *prompt;
- struct partedit_item *items;
+ struct partedit_item *items = NULL;
struct gmesh mesh;
int i, op, nitems, nscroll;
int error;
@@ -99,12 +99,21 @@ main(int argc, const char **argv)
/* Show the part editor either immediately, or to confirm wizard */
while (1) {
- error = geom_gettree(&mesh);
- items = read_geom_mesh(&mesh, &nitems);
- get_mount_points(items, nitems);
dlg_clear();
dlg_put_backtitle();
+ error = geom_gettree(&mesh);
+ if (error == 0)
+ items = read_geom_mesh(&mesh, &nitems);
+ if (error || items == NULL) {
+ dialog_msgbox("Error", "No disks found. If you need to "
+ "install a kernel driver, choose Shell at the "
+ "installation menu.", 0, 0, TRUE);
+ break;
+ }
+
+ get_mount_points(items, nitems);
+
if (i >= nitems)
i = nitems - 1;
op = diskeditor_show("Partition Editor", prompt,
Modified: stable/9/usr.sbin/bsdinstall/scripts/netconfig
==============================================================================
--- stable/9/usr.sbin/bsdinstall/scripts/netconfig Sun Nov 6 16:37:15 2011 (r227221)
+++ stable/9/usr.sbin/bsdinstall/scripts/netconfig Sun Nov 6 16:37:50 2011 (r227222)
@@ -49,6 +49,13 @@ for IF in `ifconfig -l`; do
DIALOG_TAGS="$DIALOG_TAGS $IF \"$DESC\""
done
+if [ -z "$INTERFACES" ]; then
+ dialog --backtitle 'FreeBSD Installer' \
+ --title 'Network Configuration Error' \
+ --msgbox 'No network interfaces present to configure.' 0 0
+ exit 1
+fi
+
exec 3>&1
INTERFACE=`echo $DIALOG_TAGS | xargs dialog --backtitle 'FreeBSD Installer' --title 'Network Configuration' --menu 'Please select a network interface to configure:' 0 0 0 2>&1 1>&3`
if [ $? -eq $DIALOG_CANCEL ]; then exit 1; fi
_______________________________________________
svn-src-all at freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscribe at freebsd.org"
More information about the freebsd-sysinstall
mailing list