diff options
author | phk <phk@FreeBSD.org> | 2003-10-12 11:34:35 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2003-10-12 11:34:35 +0000 |
commit | ed350390edb89bf4830a5f466fecd17b7746db82 (patch) | |
tree | fe1f74c71be944772beb1dc5977da269372d65a0 /sys/geom/geom_event.c | |
parent | 7526d14d4828dfdc5a80f50fc0900618fc053e1d (diff) | |
download | FreeBSD-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.c | 2 |
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) |