aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorKirill Tkhai <ktkhai@virtuozzo.com>2018-02-19 11:49:40 +0300
committerDavid S. Miller <davem@davemloft.net>2018-02-19 14:19:10 -0500
commitfef65a2c6c3417fcf2fb0bebd8c27355d1b14a12 (patch)
tree2a34d760773bec4b78aa2542042def427db4b748 /net/ipv6/tcp_ipv6.c
parentnet: Convert fib6_rules_net_ops (diff)
downloadlinux-dev-fef65a2c6c3417fcf2fb0bebd8c27355d1b14a12.tar.xz
linux-dev-fef65a2c6c3417fcf2fb0bebd8c27355d1b14a12.zip
net: Convert tcpv6_net_ops
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>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 883df0ad5bfe..5425d7b100ee 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -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)