Commit 997266a4 authored by Kirill Tkhai's avatar Kirill Tkhai Committed by David S. Miller

net: Convert ip6 tables pernet_operations

The pernet_operations:

    ip6table_filter_net_ops
    ip6table_mangle_net_ops
    ip6table_nat_net_ops
    ip6table_raw_net_ops
    ip6table_security_net_ops

have exit methods, which call ip6t_unregister_table().
ip6table_filter_net_ops has init method registering
filter table.

Since there must not be in-flight ipv6 packets at the time
of pernet_operations execution and since pernet_operations
don't send ipv6 packets each other, these pernet_operations
are safe to be async.
Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 459d153d
...@@ -87,6 +87,7 @@ static void __net_exit ip6table_filter_net_exit(struct net *net) ...@@ -87,6 +87,7 @@ static void __net_exit ip6table_filter_net_exit(struct net *net)
static struct pernet_operations ip6table_filter_net_ops = { static struct pernet_operations ip6table_filter_net_ops = {
.init = ip6table_filter_net_init, .init = ip6table_filter_net_init,
.exit = ip6table_filter_net_exit, .exit = ip6table_filter_net_exit,
.async = true,
}; };
static int __init ip6table_filter_init(void) static int __init ip6table_filter_init(void)
......
...@@ -107,6 +107,7 @@ static void __net_exit ip6table_mangle_net_exit(struct net *net) ...@@ -107,6 +107,7 @@ static void __net_exit ip6table_mangle_net_exit(struct net *net)
static struct pernet_operations ip6table_mangle_net_ops = { static struct pernet_operations ip6table_mangle_net_ops = {
.exit = ip6table_mangle_net_exit, .exit = ip6table_mangle_net_exit,
.async = true,
}; };
static int __init ip6table_mangle_init(void) static int __init ip6table_mangle_init(void)
......
...@@ -131,6 +131,7 @@ static void __net_exit ip6table_nat_net_exit(struct net *net) ...@@ -131,6 +131,7 @@ static void __net_exit ip6table_nat_net_exit(struct net *net)
static struct pernet_operations ip6table_nat_net_ops = { static struct pernet_operations ip6table_nat_net_ops = {
.exit = ip6table_nat_net_exit, .exit = ip6table_nat_net_exit,
.async = true,
}; };
static int __init ip6table_nat_init(void) static int __init ip6table_nat_init(void)
......
...@@ -75,6 +75,7 @@ static void __net_exit ip6table_raw_net_exit(struct net *net) ...@@ -75,6 +75,7 @@ static void __net_exit ip6table_raw_net_exit(struct net *net)
static struct pernet_operations ip6table_raw_net_ops = { static struct pernet_operations ip6table_raw_net_ops = {
.exit = ip6table_raw_net_exit, .exit = ip6table_raw_net_exit,
.async = true,
}; };
static int __init ip6table_raw_init(void) static int __init ip6table_raw_init(void)
......
...@@ -74,6 +74,7 @@ static void __net_exit ip6table_security_net_exit(struct net *net) ...@@ -74,6 +74,7 @@ static void __net_exit ip6table_security_net_exit(struct net *net)
static struct pernet_operations ip6table_security_net_ops = { static struct pernet_operations ip6table_security_net_ops = {
.exit = ip6table_security_net_exit, .exit = ip6table_security_net_exit,
.async = true,
}; };
static int __init ip6table_security_init(void) static int __init ip6table_security_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment