diff options
Diffstat (limited to 'net/rds/connection.c')
-rw-r--r-- | net/rds/connection.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/net/rds/connection.c b/net/rds/connection.c index 9c249f394f29..87df15b9f8e4 100644 --- a/net/rds/connection.c +++ b/net/rds/connection.c | |||
@@ -321,7 +321,10 @@ void rds_conn_destroy(struct rds_connection *conn) | |||
321 | "%pI4\n", conn, &conn->c_laddr, | 321 | "%pI4\n", conn, &conn->c_laddr, |
322 | &conn->c_faddr); | 322 | &conn->c_faddr); |
323 | 323 | ||
324 | /* Ensure conn will not be scheduled for reconnect */ | ||
325 | spin_lock_irq(&rds_conn_lock); | ||
324 | hlist_del_init(&conn->c_hash_node); | 326 | hlist_del_init(&conn->c_hash_node); |
327 | spin_unlock_irq(&rds_conn_lock); | ||
325 | 328 | ||
326 | /* wait for the rds thread to shut it down */ | 329 | /* wait for the rds thread to shut it down */ |
327 | atomic_set(&conn->c_state, RDS_CONN_ERROR); | 330 | atomic_set(&conn->c_state, RDS_CONN_ERROR); |