net: Convert sysctl_pernet_ops
authorKirill Tkhai <ktkhai@virtuozzo.com>
Tue, 13 Feb 2018 09:27:13 +0000 (12:27 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Feb 2018 15:36:05 +0000 (10:36 -0500)
This patch starts to convert pernet_subsys, registered
from core initcalls.

Methods sysctl_net_init() and sysctl_net_exit() initialize
net::sysctls table of a namespace.

pernet_operations::init()/exit() methods from the rest
of the list do not touch net::sysctls of strangers,
so it's safe to execute sysctl_pernet_ops's methods
in parallel with any other pernet_operations.

Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Acked-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sysctl_net.c

index 9aed6fe1bf1ad67057d5ec001806729cd5988a94..f424539829b764f29adfe53d0886cbfd3db53d4d 100644 (file)
@@ -89,6 +89,7 @@ static void __net_exit sysctl_net_exit(struct net *net)
 static struct pernet_operations sysctl_pernet_ops = {
        .init = sysctl_net_init,
        .exit = sysctl_net_exit,
+       .async = true,
 };
 
 static struct ctl_table_header *net_header;