rds: tcp: Take explicit refcounts on struct net
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Sat, 4 Mar 2017 16:57:33 +0000 (08:57 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Mar 2017 22:09:59 +0000 (14:09 -0800)
commit8edc3affc0770886c7bfb3436b0fdd09bce13167
treecfe3a2ae7348961f4c8872ffd5158d2ba4e35235
parentfa4c7fb2ad2ea5dae57eb875915d0efb1e068543
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>
net/rds/connection.c
net/rds/rds.h
net/rds/tcp.c