diff options
Diffstat (limited to 'net/rds/connection.c')
| -rw-r--r-- | net/rds/connection.c | 3 | 
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)  	 * to the conn hash, so we never trigger a reconnect on this  	 * conn - the reconnect is always triggered by the active peer. */  	cancel_delayed_work_sync(&cp->cp_conn_w); +	if (conn->c_destroy_in_prog) +		return;  	rcu_read_lock();  	if (!hlist_unhashed(&conn->c_hash_node)) {  		rcu_read_unlock(); @@ -445,7 +447,6 @@ void rds_conn_destroy(struct rds_connection *conn)  	 */  	rds_cong_remove_conn(conn); -	put_net(conn->c_net);  	kfree(conn->c_path);  	kmem_cache_free(rds_conn_slab, conn); | 
