[rds-devel] [PATCH 2/2] RDS: clear RDS_CONN_CONNECTING bit when
connecting process finished and connection established
Vladimir Sokolovsky
vlad at mellanox.co.il
Wed Jun 6 08:18:40 PDT 2007
RDS: clear RDS_CONN_CONNECTING bit when connecting
process finished and connection established
Signed-off-by: Vladimir Sokolovsky <vlad at mellanox.co.il>
---
diff --git a/net/rds/threads.c b/net/rds/threads.c
index 2fd9452..004cc29 100644
--- a/net/rds/threads.c
+++ b/net/rds/threads.c
@@ -52,6 +52,7 @@ EXPORT_SYMBOL_GPL(rds_wq);
void rds_connect_complete(struct rds_connection *conn)
{
set_bit(RDS_CONN_CONNECTED, &conn->c_status);
+ clear_bit(RDS_CONN_CONNECTING, &conn->c_status);
smp_mb__after_clear_bit();
conn->c_reconnect_jiffies = 0;
set_bit(0, &conn->c_map_queued);
@@ -120,7 +121,7 @@ void rds_shutdown_worker(struct work_struct *work)
/* shut it down if .conn_connect succeeded */
was_conn = test_and_clear_bit(RDS_CONN_CONNECTED, &conn->c_status);
- if (test_and_clear_bit(RDS_CONN_CONNECTING, &conn->c_status)) {
+ if (was_conn || test_and_clear_bit(RDS_CONN_CONNECTING, &conn->c_status)) {
down(&conn->c_send_sem);
conn->c_trans->conn_shutdown(conn);
rds_conn_reset(conn);
--
Vladimir Sokolovsky <vlad at mellanox.co.il>
Mellanox Technologies Ltd.
More information about the rds-devel
mailing list