rds: tcp: Take explicit refcounts on struct net
It is incorrect for the rds_connection to piggyback on the sock_net() refcount for the netns because this gives rise to a chicken-and-egg problem during rds_conn_destroy. Instead explicitly take a ref on the net, and hold the netns down till the connection tear-down is complete. Reported-by: Dmitry Vyukov <dvyukov@google.com> Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
fa4c7fb2ad
commit
8edc3affc0
@@ -429,6 +429,7 @@ void rds_conn_destroy(struct rds_connection *conn)
|
||||
*/
|
||||
rds_cong_remove_conn(conn);
|
||||
|
||||
put_net(conn->c_net);
|
||||
kmem_cache_free(rds_conn_slab, conn);
|
||||
|
||||
spin_lock_irqsave(&rds_conn_lock, flags);
|
||||
|
Reference in New Issue
Block a user