rds_conn_destroy really needs locking while it changes the
connection hash.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
"%pI4\n", conn, &conn->c_laddr,
&conn->c_faddr);
"%pI4\n", conn, &conn->c_laddr,
&conn->c_faddr);
+ /* Ensure conn will not be scheduled for reconnect */
+ spin_lock_irq(&rds_conn_lock);
hlist_del_init(&conn->c_hash_node);
hlist_del_init(&conn->c_hash_node);
+ spin_unlock_irq(&rds_conn_lock);
/* wait for the rds thread to shut it down */
atomic_set(&conn->c_state, RDS_CONN_ERROR);
/* wait for the rds thread to shut it down */
atomic_set(&conn->c_state, RDS_CONN_ERROR);