diff options
author | phk <phk@FreeBSD.org> | 2004-03-07 17:33:15 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-03-07 17:33:15 +0000 |
commit | 4b105bbf3a310353e526d3e6e1c849094480d7e3 (patch) | |
tree | 4a3ad8ff58603abc2be9753e110741f48a4b32b5 | |
parent | 8687e8494bb2e9c8934488baae5304f89755ba23 (diff) | |
download | FreeBSD-src-4b105bbf3a310353e526d3e6e1c849094480d7e3.zip FreeBSD-src-4b105bbf3a310353e526d3e6e1c849094480d7e3.tar.gz |
Don't panic on providers already withered when we wither a geom.
-rw-r--r-- | sys/geom/geom_subr.c | 3 |
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); |