From 8d105bca1c7437f233c22e85bb34a29aa23167d2 Mon Sep 17 00:00:00 2001 From: phk Date: Sat, 7 Jun 2003 15:46:53 +0000 Subject: [PATCH] Improve the root-dev prompt facility for printing devices which could possibly be a root filesystem. --- sys/geom/geom.h | 2 +- sys/geom/geom_dev.c | 14 ++++++-------- sys/kern/vfs_mount.c | 13 ++----------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/sys/geom/geom.h b/sys/geom/geom.h index aed9498789e5..53f735609c74 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 65ae7228679d..a00ce6ae8f37 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 6a12f20e9445..f9cc52a3762f 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))