Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Oct 2007 21:13:39 GMT
From:      Marko Zec <zec@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 128368 for review
Message-ID:  <200710302113.l9ULDda7047290@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=128368

Change 128368 by zec@zec_tpx32 on 2007/10/30 21:13:05

	In ng_pipe, drop a refcount to our own node on node shutdown,
	otherwise the node would remain a zombie invisible by
	"ngctl list".  This was relatively benign for ng_pipe nodes
	living in the default vnet, but would lead to a panic
	on attempts to destroy a vnet with at least one such a zombie
	hanging in there.
	
	While here, remove an unused field in node_priv struct, and
	rename ngp_rmnode() -> ngp_shutdown().

Affected files ...

.. //depot/projects/vimage/src/sys/netgraph/ng_pipe.c#5 edit

Differences ...

==== //depot/projects/vimage/src/sys/netgraph/ng_pipe.c#5 (text+ko) ====

@@ -96,7 +96,6 @@
 
 /* Per node info */
 struct node_priv {
-	node_p			node;
 	u_int64_t		delay;
 	u_int32_t		overhead;
 	u_int32_t		header_offset;
@@ -147,7 +146,7 @@
 /* Netgraph methods */
 static ng_constructor_t	ngp_constructor;
 static ng_rcvmsg_t	ngp_rcvmsg;
-static ng_shutdown_t	ngp_rmnode;
+static ng_shutdown_t	ngp_shutdown;
 static ng_newhook_t	ngp_newhook;
 static ng_rcvdata_t	ngp_rcvdata;
 static ng_disconnect_t	ngp_disconnect;
@@ -246,7 +245,7 @@
 	.name =		NG_PIPE_NODE_TYPE,
 	.mod_event =	ngp_modevent,
 	.constructor =	ngp_constructor,
-	.shutdown =	ngp_rmnode,
+	.shutdown =	ngp_shutdown,
 	.rcvmsg =	ngp_rcvmsg,
 	.newhook =	ngp_newhook,
 	.rcvdata =	ngp_rcvdata,
@@ -945,7 +944,7 @@
  * a normal node would.
  */
 static int
-ngp_rmnode(node_p node)
+ngp_shutdown(node_p node)
 {
 	const priv_p priv = NG_NODE_PRIVATE(node);
 
@@ -957,6 +956,7 @@
 		if (priv->lower.hook != NULL)
 			ng_rmhook_self(priv->lower.hook);
 	}
+	NG_NODE_UNREF(node);
 	FREE(priv, M_NG_PIPE);
 	return (0);
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200710302113.l9ULDda7047290>