summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-03-07 17:33:15 +0000
committerphk <phk@FreeBSD.org>2004-03-07 17:33:15 +0000
commit4b105bbf3a310353e526d3e6e1c849094480d7e3 (patch)
tree4a3ad8ff58603abc2be9753e110741f48a4b32b5 /sys
parent8687e8494bb2e9c8934488baae5304f89755ba23 (diff)
downloadFreeBSD-src-4b105bbf3a310353e526d3e6e1c849094480d7e3.zip
FreeBSD-src-4b105bbf3a310353e526d3e6e1c849094480d7e3.tar.gz
Don't panic on providers already withered when we wither a geom.
Diffstat (limited to 'sys')
-rw-r--r--sys/geom/geom_subr.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/geom/geom_subr.c b/sys/geom/geom_subr.c
index 69a972d..ea7691f 100644
--- a/sys/geom/geom_subr.c
+++ b/sys/geom/geom_subr.c
@@ -272,7 +272,8 @@ g_wither_geom(struct g_geom *gp, int error)
if (!(gp->flags & G_GEOM_WITHER)) {
gp->flags |= G_GEOM_WITHER;
LIST_FOREACH(pp, &gp->provider, provider)
- g_orphan_provider(pp, error);
+ if (!(pp->flags & G_PF_ORPHAN))
+ g_orphan_provider(pp, error);
}
for (pp = LIST_FIRST(&gp->provider); pp != NULL; pp = pp2) {
pp2 = LIST_NEXT(pp, provider);
OpenPOWER on IntegriCloud