ip_tables_net_ops and udplite6_net_ops create and destroy /proc entries.
xt_net_ops does nothing.

So, we are able to mark them async.

Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com>
---
 net/ipv4/netfilter/ip_tables.c |    1 +
 net/ipv6/udplite.c             |    1 +
 net/netfilter/x_tables.c       |    1 +
 3 files changed, 3 insertions(+)

diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
index 9a71f3149507..39a7cf9160e6 100644
--- a/net/ipv4/netfilter/ip_tables.c
+++ b/net/ipv4/netfilter/ip_tables.c
@@ -1911,6 +1911,7 @@ static void __net_exit ip_tables_net_exit(struct net *net)
 static struct pernet_operations ip_tables_net_ops = {
        .init = ip_tables_net_init,
        .exit = ip_tables_net_exit,
+       .async = true,
 };
 
 static int __init ip_tables_init(void)
diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c
index 14ae32bb1f3d..f3839780dc31 100644
--- a/net/ipv6/udplite.c
+++ b/net/ipv6/udplite.c
@@ -123,6 +123,7 @@ static void __net_exit udplite6_proc_exit_net(struct net 
*net)
 static struct pernet_operations udplite6_net_ops = {
        .init = udplite6_proc_init_net,
        .exit = udplite6_proc_exit_net,
+       .async = true,
 };
 
 int __init udplite6_proc_init(void)
diff --git a/net/netfilter/x_tables.c b/net/netfilter/x_tables.c
index 2f685ee1f9c8..a6a435d7c8f4 100644
--- a/net/netfilter/x_tables.c
+++ b/net/netfilter/x_tables.c
@@ -1765,6 +1765,7 @@ static void __net_exit xt_net_exit(struct net *net)
 static struct pernet_operations xt_net_ops = {
        .init = xt_net_init,
        .exit = xt_net_exit,
+       .async = true,
 };
 
 static int __init xt_init(void)

Reply via email to