summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2008-08-20 04:37:16 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2008-08-20 04:37:16 +0000
commite242c7f1340381864308a5a137ba278a474ed0d6 (patch)
treeffdfd1ad31dc945c74602a69ea0e6cfe416f6e8f /sys
parentc1a0621b7ea4b80abbce53c2b0092d8308b8166e (diff)
Allow devices attaching at root (such as softraid) to be disabled in UKC.
ok marco@ deraadt@
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_autoconf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/subr_autoconf.c b/sys/kern/subr_autoconf.c
index 83ebf9a7990..a847266e065 100644
--- a/sys/kern/subr_autoconf.c
+++ b/sys/kern/subr_autoconf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: subr_autoconf.c,v 1.55 2007/11/23 18:21:43 kettenis Exp $ */
+/* $OpenBSD: subr_autoconf.c,v 1.56 2008/08/20 04:37:15 miod Exp $ */
/* $NetBSD: subr_autoconf.c,v 1.21 1996/04/04 06:06:18 cgd Exp $ */
/*
@@ -277,11 +277,14 @@ config_rootsearch(cfmatch_t fn, char *rootname, void *aux)
m.pri = 0;
/*
* Look at root entries for matching name. We do not bother
- * with found-state here since only one root should ever be
- * searched (and it must be done first).
+ * with found-state here since only one instance of each possible
+ * root child should ever be searched.
*/
for (p = cfroots; *p >= 0; p++) {
cf = &cfdata[*p];
+ if (cf->cf_fstate == FSTATE_DNOTFOUND ||
+ cf->cf_fstate == FSTATE_DSTAR)
+ continue;
if (strcmp(cf->cf_driver->cd_name, rootname) == 0)
mapply(&m, cf);
}