summaryrefslogtreecommitdiffstats
path: root/net/rds/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rds/connection.c')
-rw-r--r--net/rds/connection.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rds/connection.c b/net/rds/connection.c
index 7ee2d5d68b78..9efc82c665b5 100644
--- a/net/rds/connection.c
+++ b/net/rds/connection.c
@@ -366,6 +366,8 @@ void rds_conn_shutdown(struct rds_conn_path *cp)
366 * to the conn hash, so we never trigger a reconnect on this 366 * to the conn hash, so we never trigger a reconnect on this
367 * conn - the reconnect is always triggered by the active peer. */ 367 * conn - the reconnect is always triggered by the active peer. */
368 cancel_delayed_work_sync(&cp->cp_conn_w); 368 cancel_delayed_work_sync(&cp->cp_conn_w);
369 if (conn->c_destroy_in_prog)
370 return;
369 rcu_read_lock(); 371 rcu_read_lock();
370 if (!hlist_unhashed(&conn->c_hash_node)) { 372 if (!hlist_unhashed(&conn->c_hash_node)) {
371 rcu_read_unlock(); 373 rcu_read_unlock();
@@ -445,7 +447,6 @@ void rds_conn_destroy(struct rds_connection *conn)
445 */ 447 */
446 rds_cong_remove_conn(conn); 448 rds_cong_remove_conn(conn);
447 449
448 put_net(conn->c_net);
449 kfree(conn->c_path); 450 kfree(conn->c_path);
450 kmem_cache_free(rds_conn_slab, conn); 451 kmem_cache_free(rds_conn_slab, conn);
451 452