net: Convert tcpv6_net_ops
authorKirill Tkhai <ktkhai@virtuozzo.com>
Mon, 19 Feb 2018 08:49:40 +0000 (11:49 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Feb 2018 19:19:10 +0000 (14:19 -0500)
These pernet_operations create and destroy net::ipv6.tcp_sk
socket, which is used in tcp_v6_send_response() only. It looks
like foreign pernet_operations don't want to set ipv6 connection
inside destroyed net, so this socket may be created in destroyed
in parallel with anything else. inet_twsk_purge() is also safe
for that, as described in patch for tcp_sk_ops. So, it's possible
to mark them as async.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/tcp_ipv6.c

index 883df0ad5bfe9d5373c0f7ed37107cdc57959569..5425d7b100ee1e409bffc9a828f81d07405a00c9 100644 (file)
@@ -2007,6 +2007,7 @@ static struct pernet_operations tcpv6_net_ops = {
        .init       = tcpv6_net_init,
        .exit       = tcpv6_net_exit,
        .exit_batch = tcpv6_net_exit_batch,
+       .async      = true,
 };
 
 int __init tcpv6_init(void)