[Ocfs2-commits] zab commits r2449 - trunk/fs/ocfs2/cluster

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Wed Jun 29 20:33:27 CDT 2005


Author: zab
Signed-off-by: mfasheh
Date: 2005-06-29 20:33:25 -0500 (Wed, 29 Jun 2005)
New Revision: 2449

Modified:
   trunk/fs/ocfs2/cluster/tcp.c
Log:
Audit tcp.c's delayed work cancelation after teardown saw a timer trigger
and try to queue work in its freed workqueue.

o queued keepalive work simply wasn't being canceled, WOOT
o noticed that connect_expired work should be canceled like connect_work

Signed-off-by: mfasheh


Modified: trunk/fs/ocfs2/cluster/tcp.c
===================================================================
--- trunk/fs/ocfs2/cluster/tcp.c	2005-06-30 00:30:29 UTC (rev 2448)
+++ trunk/fs/ocfs2/cluster/tcp.c	2005-06-30 01:33:25 UTC (rev 2449)
@@ -618,6 +618,7 @@
 		/* we shouldn't flush as we're in the thread, the
 		 * races with pending sc work structs are harmless */
 		del_timer_sync(&sc->sc_idle_timeout);
+		o2net_sc_cancel_delayed_work(sc, &sc->sc_keepalive_work);
 		sc_put(sc);
 		sc->sc_sock->ops->shutdown(sc->sc_sock,
 					   RCV_SHUTDOWN|SEND_SHUTDOWN);
@@ -1547,6 +1548,7 @@
 	spin_unlock(&nn->nn_lock);
 
 	if (o2net_wq) {
+		cancel_delayed_work(&nn->nn_connect_expired);
 		cancel_delayed_work(&nn->nn_connect_work);
 		flush_workqueue(o2net_wq);
 	}
@@ -1555,16 +1557,13 @@
 static void o2net_hb_node_down_cb(struct o2nm_node *node, int node_num,
 				  void *data)
 {
-	struct o2net_node *nn = o2net_nn_from_num(node_num);
-
 	o2net_heartbeating_nodes--;
 	mlog(ML_QUORUM, "node %u, now %u heartbeating\n", node_num,
 	     o2net_heartbeating_nodes);
 
-	if (node_num != o2nm_this_node()) {
-		cancel_delayed_work(&nn->nn_connect_expired);
+	if (node_num != o2nm_this_node())
 		o2net_disconnect_node(node);
-	} else 
+	else 
 		cancel_delayed_work(&o2net_quorum_work);
 }
 



More information about the Ocfs2-commits mailing list