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