[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