From a2fa37fe6710f7e6eb53e59a32584bfef535dbbf Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Fri, 2 Dec 2011 17:09:48 +0000 Subject: Close race between geom destruction on g_vfs_close() when softc destroyed and g_vfs_orphan() call that tries to access softc, intruced at r227015. PR: kern/162997 --- sys/geom/geom_vfs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/geom/geom_vfs.c b/sys/geom/geom_vfs.c index a3e51388b6b5..9be0000bb485 100644 --- a/sys/geom/geom_vfs.c +++ b/sys/geom/geom_vfs.c @@ -169,8 +169,10 @@ g_vfs_orphan(struct g_consumer *cp) g_topology_assert(); gp = cp->geom; - sc = gp->softc; g_trace(G_T_TOPOLOGY, "g_vfs_orphan(%p(%s))", cp, gp->name); + sc = gp->softc; + if (sc == NULL) + return; mtx_lock(&sc->sc_mtx); sc->sc_orphaned = 1; destroy = (sc->sc_active == 0); -- cgit v1.2.3