summaryrefslogtreecommitdiffstats
path: root/sys/geom/geom_event.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2003-10-12 11:34:35 +0000
committerphk <phk@FreeBSD.org>2003-10-12 11:34:35 +0000
commited350390edb89bf4830a5f466fecd17b7746db82 (patch)
treefe1f74c71be944772beb1dc5977da269372d65a0 /sys/geom/geom_event.c
parent7526d14d4828dfdc5a80f50fc0900618fc053e1d (diff)
downloadFreeBSD-src-ed350390edb89bf4830a5f466fecd17b7746db82.zip
FreeBSD-src-ed350390edb89bf4830a5f466fecd17b7746db82.tar.gz
Destroy providers maked with G_PF_WITHER when the last consumer has detached.
Diffstat (limited to 'sys/geom/geom_event.c')
-rw-r--r--sys/geom/geom_event.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/geom/geom_event.c b/sys/geom/geom_event.c
index f180c43..e326a22 100644
--- a/sys/geom/geom_event.c
+++ b/sys/geom/geom_event.c
@@ -139,6 +139,8 @@ g_orphan_register(struct g_provider *pp)
cp->geom->orphan(cp);
cp = cp2;
}
+ if (LIST_EMPTY(&pp->consumers) && (pp->flags & G_PF_WITHER))
+ g_destroy_provider(pp);
#ifdef notyet
cp = LIST_FIRST(&pp->consumers);
if (cp != NULL)
OpenPOWER on IntegriCloud