summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-06-07 15:46:53 +0000
committerphk <phk@FreeBSD.org>2003-06-07 15:46:53 +0000
commit8d105bca1c7437f233c22e85bb34a29aa23167d2 (patch)
tree7532e30adb1fbc8c2cb4006ea1db09541093fa33 /sys
parentc9fca2ba58122a83e0cdb9fb368520d5548350bc (diff)
downloadFreeBSD-src-8d105bca1c7437f233c22e85bb34a29aa23167d2.zip
FreeBSD-src-8d105bca1c7437f233c22e85bb34a29aa23167d2.tar.gz
Improve the root-dev prompt facility for printing devices which could
possibly be a root filesystem.
Diffstat (limited to 'sys')
-rw-r--r--sys/geom/geom.h2
-rw-r--r--sys/geom/geom_dev.c14
-rw-r--r--sys/kern/vfs_mount.c13
3 files changed, 9 insertions, 20 deletions
diff --git a/sys/geom/geom.h b/sys/geom/geom.h
index aed9498..53f7356 100644
--- a/sys/geom/geom.h
+++ b/sys/geom/geom.h
@@ -172,7 +172,7 @@ struct g_provider {
};
/* geom_dev.c */
-int g_dev_print(void);
+void g_dev_print(void);
/* geom_dump.c */
void g_hexdump(void *ptr, int length);
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c
index 65ae722..a00ce6a 100644
--- a/sys/geom/geom_dev.c
+++ b/sys/geom/geom_dev.c
@@ -76,19 +76,17 @@ static struct g_class g_dev_class = {
.taste = g_dev_taste,
};
-int
+void
g_dev_print(void)
{
struct g_geom *gp;
+ char const *p = "";
- g_waitidle();
- if (LIST_EMPTY(&g_dev_class.geom))
- return (0);
- printf("List of GEOM disk devices:\n ");
- LIST_FOREACH(gp, &g_dev_class.geom, geom)
- printf(" %s", gp->name);
+ LIST_FOREACH(gp, &g_dev_class.geom, geom) {
+ printf("%s%s", p, gp->name);
+ p = " ";
+ }
printf("\n");
- return (1);
}
/*
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 6a12f20..f9cc52a 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1600,8 +1600,6 @@ static int
vfs_mountroot_ask(void)
{
char name[128];
- int i;
- dev_t dev;
for(;;) {
printf("\nManual root filesystem specification:\n");
@@ -1618,15 +1616,8 @@ vfs_mountroot_ask(void)
if (name[0] == 0)
return(1);
if (name[0] == '?') {
- if (!g_dev_print()) {
- printf("Possibly valid devices for 'ufs' root:\n");
- for (i = 0; i < NUMCDEVSW; i++) {
- dev = makedev(i, 0);
- if (devsw(dev) != NULL)
- printf(" \"%s\"", devsw(dev)->d_name);
- }
- }
- printf("\n");
+ printf("\nList of GEOM managed disk devices:\n ");
+ g_dev_print();
continue;
}
if (!vfs_mountroot_try(name))
OpenPOWER on IntegriCloud