diff options
author | le <le@FreeBSD.org> | 2004-06-18 19:53:33 +0000 |
---|---|---|
committer | le <le@FreeBSD.org> | 2004-06-18 19:53:33 +0000 |
commit | b7f1bee2cf9b05ab722e1afbc5292becbd9075f8 (patch) | |
tree | c2b00455cfce196919f914d1a51ff3ed4f7d26c3 /sys/geom/vinum/geom_vinum_plex.c | |
parent | 3a20dac2f54d6a7e89c05998cfa171b1809a111d (diff) | |
download | FreeBSD-src-b7f1bee2cf9b05ab722e1afbc5292becbd9075f8.zip FreeBSD-src-b7f1bee2cf9b05ab722e1afbc5292becbd9075f8.tar.gz |
Clean up allocated ressources when destroying the main vinum geom.
Diffstat (limited to 'sys/geom/vinum/geom_vinum_plex.c')
-rw-r--r-- | sys/geom/vinum/geom_vinum_plex.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/geom/vinum/geom_vinum_plex.c b/sys/geom/vinum/geom_vinum_plex.c index beceee0..1887366 100644 --- a/sys/geom/vinum/geom_vinum_plex.c +++ b/sys/geom/vinum/geom_vinum_plex.c @@ -66,11 +66,13 @@ gv_plex_orphan(struct g_consumer *cp) return; p = gp->softc; - gv_kill_thread(p); - p->geom = NULL; + if (p != NULL) { + gv_kill_thread(p); + p->geom = NULL; + p->provider = NULL; + p->consumer = NULL; + } gp->softc = NULL; - p->provider = NULL; - p->consumer = NULL; g_wither_geom(gp, error); } |