net: Convert fib6_net_ops, ipv6_addr_label_ops and ip6_segments_ops
authorKirill Tkhai <ktkhai@virtuozzo.com>
Mon, 19 Feb 2018 08:50:28 +0000 (11:50 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 19 Feb 2018 19:19:11 +0000 (14:19 -0500)
These pernet_operations register and unregister tables
and lists for packets forwarding. All of the entities
are per-net. Init methods makes simple initializations,
and since net is not visible for foreigners at the time
it is working, it can't race with anything. Exit method
is executed when there are only local devices, and there
mustn't be packets in-flight. Also, it looks like no one
pernet_operations want to send ipv6 packets to foreign
net. The same reasons are for ipv6_addr_label_ops and
ip6_segments_ops. So, we are able to mark all them as
async.

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

index 1d6ced37ad718398c947cf49b3b486d4b88f3f6f..ba2e636333703263e37b06bf123aaefa92f46073 100644 (file)
@@ -344,6 +344,7 @@ static void __net_exit ip6addrlbl_net_exit(struct net *net)
 static struct pernet_operations ipv6_addr_label_ops = {
        .init = ip6addrlbl_net_init,
        .exit = ip6addrlbl_net_exit,
+       .async = true,
 };
 
 int __init ipv6_addr_label_init(void)
index 92b8d8c75eed60acb06779e5912489dbfa200556..cab95cf3b39fcfaf1f17c8e26098d0b7cc66bffa 100644 (file)
@@ -2160,6 +2160,7 @@ static void fib6_net_exit(struct net *net)
 static struct pernet_operations fib6_net_ops = {
        .init = fib6_net_init,
        .exit = fib6_net_exit,
+       .async = true,
 };
 
 int __init fib6_init(void)
index 7f5621d095719c4179b3b1ff6e7a7d6665419e39..c3f13c3bd8a9da8d7e55801be648ffc85334f172 100644 (file)
@@ -395,6 +395,7 @@ static void __net_exit seg6_net_exit(struct net *net)
 static struct pernet_operations ip6_segments_ops = {
        .init = seg6_net_init,
        .exit = seg6_net_exit,
+       .async = true,
 };
 
 static const struct genl_ops seg6_genl_ops[] = {