From bf671feeae05d67d314687a7dc7e14c40e5c0083 Mon Sep 17 00:00:00 2001 From: liangzhen <liangzhen> Date: Tue, 25 Mar 2008 06:07:19 +0000 Subject: [PATCH] Branch HEAD b=15002 i=isaac Fix a race between ksocknal_terminate_conn and ksocknal_scheduler --- lnet/klnds/socklnd/socklnd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c index 7118a80dcf..05b9e5ccc3 100644 --- a/lnet/klnds/socklnd/socklnd.c +++ b/lnet/klnds/socklnd/socklnd.c @@ -1504,12 +1504,13 @@ ksocknal_terminate_conn (ksock_conn_t *conn) /* wake up the scheduler to "send" all remaining packets to /dev/null */ spin_lock_bh (&sched->kss_lock); + /* a closing conn is always ready to tx */ + conn->ksnc_tx_ready = 1; + if (!conn->ksnc_tx_scheduled && !list_empty(&conn->ksnc_tx_queue)){ list_add_tail (&conn->ksnc_tx_list, &sched->kss_tx_conns); - /* a closing conn is always ready to tx */ - conn->ksnc_tx_ready = 1; conn->ksnc_tx_scheduled = 1; /* extra ref for scheduler */ ksocknal_conn_addref(conn); -- GitLab