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

net: Convert ipgre_net_ops, ipgre_tap_net_ops, erspan_net_ops, vti_net_ops and ipip_net_ops

These pernet_operations are similar to bond_net_ops. Exit methods
unregisters all net ipgre/ipgre_tap/erspan/vti/ipip devices, and it
looks like another pernet_operations are not interested in foreign
net ipgre/ipgre_tap/erspan/vti/ipip list. Init method also does not
intersect with something pernet-specific. So, it's possible
to mark them async.
Signed-off-by: default avatarKirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3cec5fb3
...@@ -1044,6 +1044,7 @@ static struct pernet_operations ipgre_net_ops = { ...@@ -1044,6 +1044,7 @@ static struct pernet_operations ipgre_net_ops = {
.exit_batch = ipgre_exit_batch_net, .exit_batch = ipgre_exit_batch_net,
.id = &ipgre_net_id, .id = &ipgre_net_id,
.size = sizeof(struct ip_tunnel_net), .size = sizeof(struct ip_tunnel_net),
.async = true,
}; };
static int ipgre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], static int ipgre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
...@@ -1623,6 +1624,7 @@ static struct pernet_operations ipgre_tap_net_ops = { ...@@ -1623,6 +1624,7 @@ static struct pernet_operations ipgre_tap_net_ops = {
.exit_batch = ipgre_tap_exit_batch_net, .exit_batch = ipgre_tap_exit_batch_net,
.id = &gre_tap_net_id, .id = &gre_tap_net_id,
.size = sizeof(struct ip_tunnel_net), .size = sizeof(struct ip_tunnel_net),
.async = true,
}; };
static int __net_init erspan_init_net(struct net *net) static int __net_init erspan_init_net(struct net *net)
...@@ -1641,6 +1643,7 @@ static struct pernet_operations erspan_net_ops = { ...@@ -1641,6 +1643,7 @@ static struct pernet_operations erspan_net_ops = {
.exit_batch = erspan_exit_batch_net, .exit_batch = erspan_exit_batch_net,
.id = &erspan_net_id, .id = &erspan_net_id,
.size = sizeof(struct ip_tunnel_net), .size = sizeof(struct ip_tunnel_net),
.async = true,
}; };
static int __init ipgre_init(void) static int __init ipgre_init(void)
......
...@@ -454,6 +454,7 @@ static struct pernet_operations vti_net_ops = { ...@@ -454,6 +454,7 @@ static struct pernet_operations vti_net_ops = {
.exit_batch = vti_exit_batch_net, .exit_batch = vti_exit_batch_net,
.id = &vti_net_id, .id = &vti_net_id,
.size = sizeof(struct ip_tunnel_net), .size = sizeof(struct ip_tunnel_net),
.async = true,
}; };
static int vti_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], static int vti_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
......
...@@ -669,6 +669,7 @@ static struct pernet_operations ipip_net_ops = { ...@@ -669,6 +669,7 @@ static struct pernet_operations ipip_net_ops = {
.exit_batch = ipip_exit_batch_net, .exit_batch = ipip_exit_batch_net,
.id = &ipip_net_id, .id = &ipip_net_id,
.size = sizeof(struct ip_tunnel_net), .size = sizeof(struct ip_tunnel_net),
.async = true,
}; };
static int __init ipip_init(void) static int __init ipip_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