summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-02-27 11:01:40 -0500
committerDavid S. Miller <davem@davemloft.net>2018-02-27 11:01:40 -0500
commit23363b87a80a2eeb366c9b5b93248b7d73125ba8 (patch)
tree5c5d9694c45de9a34528de7e14627425acfcc4b7
parent7f897db37b76235d50151dfea7d543568d54535a (diff)
parent3edbccf96d2de30e7b986ceae090becfc07d3573 (diff)
Merge branch 'pernet_operations-convert-part-3'
Kirill Tkhai says: ==================== Converting pernet_operations (part #3) This patchset continues to review and to convert pernet_operations to async. Where it is possible, they are grouped by type of actions init/exit methods ([1/28], for example). I hope this will make the review a little bit easier. The changes are tree-wide: in net, fs, drivers and security. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/infiniband/core/cma.c1
-rw-r--r--drivers/net/bonding/bond_main.c1
-rw-r--r--drivers/net/geneve.c1
-rw-r--r--drivers/net/gtp.c1
-rw-r--r--drivers/net/ipvlan/ipvlan_main.c1
-rw-r--r--drivers/net/ppp/ppp_generic.c1
-rw-r--r--drivers/net/ppp/pppoe.c1
-rw-r--r--drivers/net/vrf.c1
-rw-r--r--drivers/net/vxlan.c1
-rw-r--r--fs/lockd/svc.c1
-rw-r--r--fs/nfs/inode.c1
-rw-r--r--fs/nfs_common/grace.c1
-rw-r--r--net/8021q/vlan.c1
-rw-r--r--net/bridge/br.c1
-rw-r--r--net/bridge/br_netfilter_hooks.c1
-rw-r--r--net/can/bcm.c1
-rw-r--r--net/ieee802154/core.c1
-rw-r--r--net/ipv4/ip_gre.c3
-rw-r--r--net/ipv4/ip_vti.c1
-rw-r--r--net/ipv4/ipip.c1
-rw-r--r--net/ipv4/netfilter/ipt_CLUSTERIP.c1
-rw-r--r--net/ipv4/netfilter/nf_defrag_ipv4.c1
-rw-r--r--net/ipv6/ila/ila_xlat.c1
-rw-r--r--net/ipv6/ip6_gre.c1
-rw-r--r--net/ipv6/ip6_tunnel.c1
-rw-r--r--net/ipv6/ip6_vti.c1
-rw-r--r--net/ipv6/netfilter/nf_defrag_ipv6_hooks.c1
-rw-r--r--net/ipv6/sit.c1
-rw-r--r--net/ipv6/xfrm6_tunnel.c1
-rw-r--r--net/kcm/kcmproc.c1
-rw-r--r--net/kcm/kcmsock.c1
-rw-r--r--net/key/af_key.c1
-rw-r--r--net/l2tp/l2tp_ppp.c1
-rw-r--r--net/netfilter/ipvs/ip_vs_lblc.c1
-rw-r--r--net/netfilter/ipvs/ip_vs_lblcr.c1
-rw-r--r--net/netfilter/nf_synproxy_core.c1
-rw-r--r--net/netfilter/xt_hashlimit.c1
-rw-r--r--net/netfilter/xt_recent.c1
-rw-r--r--net/phonet/pn_dev.c1
-rw-r--r--net/sched/act_bpf.c1
-rw-r--r--net/sched/act_connmark.c1
-rw-r--r--net/sched/act_csum.c1
-rw-r--r--net/sched/act_gact.c1
-rw-r--r--net/sched/act_ife.c1
-rw-r--r--net/sched/act_ipt.c2
-rw-r--r--net/sched/act_mirred.c1
-rw-r--r--net/sched/act_nat.c1
-rw-r--r--net/sched/act_pedit.c1
-rw-r--r--net/sched/act_police.c1
-rw-r--r--net/sched/act_sample.c1
-rw-r--r--net/sched/act_simple.c1
-rw-r--r--net/sched/act_skbedit.c1
-rw-r--r--net/sched/act_skbmod.c1
-rw-r--r--net/sched/act_tunnel_key.c1
-rw-r--r--net/sched/act_vlan.c1
-rw-r--r--net/sched/cls_api.c1
-rw-r--r--security/selinux/hooks.c1
-rw-r--r--security/smack/smack_netfilter.c1
58 files changed, 61 insertions, 0 deletions
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index e66963ca58bd..3ae32d1ddd27 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -4549,6 +4549,7 @@ static struct pernet_operations cma_pernet_operations = {
4549 .exit = cma_exit_net, 4549 .exit = cma_exit_net,
4550 .id = &cma_pernet_id, 4550 .id = &cma_pernet_id,
4551 .size = sizeof(struct cma_pernet), 4551 .size = sizeof(struct cma_pernet),
4552 .async = true,
4552}; 4553};
4553 4554
4554static int __init cma_init(void) 4555static int __init cma_init(void)
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index c669554d70bb..4c19d23dd282 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4791,6 +4791,7 @@ static struct pernet_operations bond_net_ops = {
4791 .exit = bond_net_exit, 4791 .exit = bond_net_exit,
4792 .id = &bond_net_id, 4792 .id = &bond_net_id,
4793 .size = sizeof(struct bond_net), 4793 .size = sizeof(struct bond_net),
4794 .async = true,
4794}; 4795};
4795 4796
4796static int __init bonding_init(void) 4797static int __init bonding_init(void)
diff --git a/drivers/net/geneve.c b/drivers/net/geneve.c
index b919e89a9b93..516dd59249d7 100644
--- a/drivers/net/geneve.c
+++ b/drivers/net/geneve.c
@@ -1694,6 +1694,7 @@ static struct pernet_operations geneve_net_ops = {
1694 .exit_batch = geneve_exit_batch_net, 1694 .exit_batch = geneve_exit_batch_net,
1695 .id = &geneve_net_id, 1695 .id = &geneve_net_id,
1696 .size = sizeof(struct geneve_net), 1696 .size = sizeof(struct geneve_net),
1697 .async = true,
1697}; 1698};
1698 1699
1699static int __init geneve_init_module(void) 1700static int __init geneve_init_module(void)
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index f38e32a7ec9c..127edd23018f 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -1325,6 +1325,7 @@ static struct pernet_operations gtp_net_ops = {
1325 .exit = gtp_net_exit, 1325 .exit = gtp_net_exit,
1326 .id = &gtp_net_id, 1326 .id = &gtp_net_id,
1327 .size = sizeof(struct gtp_net), 1327 .size = sizeof(struct gtp_net),
1328 .async = true,
1328}; 1329};
1329 1330
1330static int __init gtp_init(void) 1331static int __init gtp_init(void)
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index 67c91ceda979..d05b902c925b 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -1024,6 +1024,7 @@ static struct pernet_operations ipvlan_net_ops = {
1024 .id = &ipvlan_netid, 1024 .id = &ipvlan_netid,
1025 .size = sizeof(struct ipvlan_netns), 1025 .size = sizeof(struct ipvlan_netns),
1026 .exit = ipvlan_ns_exit, 1026 .exit = ipvlan_ns_exit,
1027 .async = true,
1027}; 1028};
1028 1029
1029static int __init ipvlan_init_module(void) 1030static int __init ipvlan_init_module(void)
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index 255a5def56e9..a393c1dff7dc 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -971,6 +971,7 @@ static struct pernet_operations ppp_net_ops = {
971 .exit = ppp_exit_net, 971 .exit = ppp_exit_net,
972 .id = &ppp_net_id, 972 .id = &ppp_net_id,
973 .size = sizeof(struct ppp_net), 973 .size = sizeof(struct ppp_net),
974 .async = true,
974}; 975};
975 976
976static int ppp_unit_register(struct ppp *ppp, int unit, bool ifname_is_set) 977static int ppp_unit_register(struct ppp *ppp, int unit, bool ifname_is_set)
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c
index bd89d1c559ce..c10e6181a2f0 100644
--- a/drivers/net/ppp/pppoe.c
+++ b/drivers/net/ppp/pppoe.c
@@ -1161,6 +1161,7 @@ static struct pernet_operations pppoe_net_ops = {
1161 .exit = pppoe_exit_net, 1161 .exit = pppoe_exit_net,
1162 .id = &pppoe_net_id, 1162 .id = &pppoe_net_id,
1163 .size = sizeof(struct pppoe_net), 1163 .size = sizeof(struct pppoe_net),
1164 .async = true,
1164}; 1165};
1165 1166
1166static int __init pppoe_init(void) 1167static int __init pppoe_init(void)
diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c
index 9ce0182223a0..e459e601c57f 100644
--- a/drivers/net/vrf.c
+++ b/drivers/net/vrf.c
@@ -1434,6 +1434,7 @@ static struct pernet_operations vrf_net_ops __net_initdata = {
1434 .init = vrf_netns_init, 1434 .init = vrf_netns_init,
1435 .id = &vrf_net_id, 1435 .id = &vrf_net_id,
1436 .size = sizeof(bool), 1436 .size = sizeof(bool),
1437 .async = true,
1437}; 1438};
1438 1439
1439static int __init vrf_init_module(void) 1440static int __init vrf_init_module(void)
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index fab7a4db249e..aa5f034d6ad1 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -3752,6 +3752,7 @@ static struct pernet_operations vxlan_net_ops = {
3752 .exit_batch = vxlan_exit_batch_net, 3752 .exit_batch = vxlan_exit_batch_net,
3753 .id = &vxlan_net_id, 3753 .id = &vxlan_net_id,
3754 .size = sizeof(struct vxlan_net), 3754 .size = sizeof(struct vxlan_net),
3755 .async = true,
3755}; 3756};
3756 3757
3757static int __init vxlan_init_module(void) 3758static int __init vxlan_init_module(void)
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index 9c36d614bf89..2dee4e03ff1c 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -709,6 +709,7 @@ static struct pernet_operations lockd_net_ops = {
709 .exit = lockd_exit_net, 709 .exit = lockd_exit_net,
710 .id = &lockd_net_id, 710 .id = &lockd_net_id,
711 .size = sizeof(struct lockd_net), 711 .size = sizeof(struct lockd_net),
712 .async = true,
712}; 713};
713 714
714 715
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index 7d893543cf3b..6c3083c992e5 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -2122,6 +2122,7 @@ static struct pernet_operations nfs_net_ops = {
2122 .exit = nfs_net_exit, 2122 .exit = nfs_net_exit,
2123 .id = &nfs_net_id, 2123 .id = &nfs_net_id,
2124 .size = sizeof(struct nfs_net), 2124 .size = sizeof(struct nfs_net),
2125 .async = true,
2125}; 2126};
2126 2127
2127/* 2128/*
diff --git a/fs/nfs_common/grace.c b/fs/nfs_common/grace.c
index 5be08f02a76b..8c743a405df6 100644
--- a/fs/nfs_common/grace.c
+++ b/fs/nfs_common/grace.c
@@ -118,6 +118,7 @@ static struct pernet_operations grace_net_ops = {
118 .exit = grace_exit_net, 118 .exit = grace_exit_net,
119 .id = &grace_net_id, 119 .id = &grace_net_id,
120 .size = sizeof(struct list_head), 120 .size = sizeof(struct list_head),
121 .async = true,
121}; 122};
122 123
123static int __init 124static int __init
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
index bad01b14a4ad..bd0ed39f65fb 100644
--- a/net/8021q/vlan.c
+++ b/net/8021q/vlan.c
@@ -729,6 +729,7 @@ static struct pernet_operations vlan_net_ops = {
729 .exit = vlan_exit_net, 729 .exit = vlan_exit_net,
730 .id = &vlan_net_id, 730 .id = &vlan_net_id,
731 .size = sizeof(struct vlan_net), 731 .size = sizeof(struct vlan_net),
732 .async = true,
732}; 733};
733 734
734static int __init vlan_proto_init(void) 735static int __init vlan_proto_init(void)
diff --git a/net/bridge/br.c b/net/bridge/br.c
index 6bf06e756df2..7770481a6506 100644
--- a/net/bridge/br.c
+++ b/net/bridge/br.c
@@ -188,6 +188,7 @@ static void __net_exit br_net_exit(struct net *net)
188 188
189static struct pernet_operations br_net_ops = { 189static struct pernet_operations br_net_ops = {
190 .exit = br_net_exit, 190 .exit = br_net_exit,
191 .async = true,
191}; 192};
192 193
193static const struct stp_proto br_stp_proto = { 194static const struct stp_proto br_stp_proto = {
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
index 27f1d4f2114a..484f54150525 100644
--- a/net/bridge/br_netfilter_hooks.c
+++ b/net/bridge/br_netfilter_hooks.c
@@ -967,6 +967,7 @@ static struct pernet_operations brnf_net_ops __read_mostly = {
967 .exit = brnf_exit_net, 967 .exit = brnf_exit_net,
968 .id = &brnf_net_id, 968 .id = &brnf_net_id,
969 .size = sizeof(struct brnf_net), 969 .size = sizeof(struct brnf_net),
970 .async = true,
970}; 971};
971 972
972static struct notifier_block brnf_notifier __read_mostly = { 973static struct notifier_block brnf_notifier __read_mostly = {
diff --git a/net/can/bcm.c b/net/can/bcm.c
index ac5e5e34fee3..26730d39e048 100644
--- a/net/can/bcm.c
+++ b/net/can/bcm.c
@@ -1717,6 +1717,7 @@ static void canbcm_pernet_exit(struct net *net)
1717static struct pernet_operations canbcm_pernet_ops __read_mostly = { 1717static struct pernet_operations canbcm_pernet_ops __read_mostly = {
1718 .init = canbcm_pernet_init, 1718 .init = canbcm_pernet_init,
1719 .exit = canbcm_pernet_exit, 1719 .exit = canbcm_pernet_exit,
1720 .async = true,
1720}; 1721};
1721 1722
1722static int __init bcm_module_init(void) 1723static int __init bcm_module_init(void)
diff --git a/net/ieee802154/core.c b/net/ieee802154/core.c
index cb7176cd4cd6..9104943c15ba 100644
--- a/net/ieee802154/core.c
+++ b/net/ieee802154/core.c
@@ -345,6 +345,7 @@ static void __net_exit cfg802154_pernet_exit(struct net *net)
345 345
346static struct pernet_operations cfg802154_pernet_ops = { 346static struct pernet_operations cfg802154_pernet_ops = {
347 .exit = cfg802154_pernet_exit, 347 .exit = cfg802154_pernet_exit,
348 .async = true,
348}; 349};
349 350
350static int __init wpan_phy_class_init(void) 351static int __init wpan_phy_class_init(void)
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 45d97e9b2759..e496afa47709 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1044,6 +1044,7 @@ static struct pernet_operations ipgre_net_ops = {
1044 .exit_batch = ipgre_exit_batch_net, 1044 .exit_batch = ipgre_exit_batch_net,
1045 .id = &ipgre_net_id, 1045 .id = &ipgre_net_id,
1046 .size = sizeof(struct ip_tunnel_net), 1046 .size = sizeof(struct ip_tunnel_net),
1047 .async = true,
1047}; 1048};
1048 1049
1049static int ipgre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], 1050static int ipgre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
@@ -1623,6 +1624,7 @@ static struct pernet_operations ipgre_tap_net_ops = {
1623 .exit_batch = ipgre_tap_exit_batch_net, 1624 .exit_batch = ipgre_tap_exit_batch_net,
1624 .id = &gre_tap_net_id, 1625 .id = &gre_tap_net_id,
1625 .size = sizeof(struct ip_tunnel_net), 1626 .size = sizeof(struct ip_tunnel_net),
1627 .async = true,
1626}; 1628};
1627 1629
1628static int __net_init erspan_init_net(struct net *net) 1630static int __net_init erspan_init_net(struct net *net)
@@ -1641,6 +1643,7 @@ static struct pernet_operations erspan_net_ops = {
1641 .exit_batch = erspan_exit_batch_net, 1643 .exit_batch = erspan_exit_batch_net,
1642 .id = &erspan_net_id, 1644 .id = &erspan_net_id,
1643 .size = sizeof(struct ip_tunnel_net), 1645 .size = sizeof(struct ip_tunnel_net),
1646 .async = true,
1644}; 1647};
1645 1648
1646static int __init ipgre_init(void) 1649static int __init ipgre_init(void)
diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
index 51b1669334fe..b10bf563afd9 100644
--- a/net/ipv4/ip_vti.c
+++ b/net/ipv4/ip_vti.c
@@ -454,6 +454,7 @@ static struct pernet_operations vti_net_ops = {
454 .exit_batch = vti_exit_batch_net, 454 .exit_batch = vti_exit_batch_net,
455 .id = &vti_net_id, 455 .id = &vti_net_id,
456 .size = sizeof(struct ip_tunnel_net), 456 .size = sizeof(struct ip_tunnel_net),
457 .async = true,
457}; 458};
458 459
459static int vti_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], 460static int vti_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index c891235b4966..9c5a4d164f09 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -669,6 +669,7 @@ static struct pernet_operations ipip_net_ops = {
669 .exit_batch = ipip_exit_batch_net, 669 .exit_batch = ipip_exit_batch_net,
670 .id = &ipip_net_id, 670 .id = &ipip_net_id,
671 .size = sizeof(struct ip_tunnel_net), 671 .size = sizeof(struct ip_tunnel_net),
672 .async = true,
672}; 673};
673 674
674static int __init ipip_init(void) 675static int __init ipip_init(void)
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
index 4b02ab39ebc5..08b3e48f44fc 100644
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
@@ -840,6 +840,7 @@ static struct pernet_operations clusterip_net_ops = {
840 .exit = clusterip_net_exit, 840 .exit = clusterip_net_exit,
841 .id = &clusterip_net_id, 841 .id = &clusterip_net_id,
842 .size = sizeof(struct clusterip_net), 842 .size = sizeof(struct clusterip_net),
843 .async = true,
843}; 844};
844 845
845static int __init clusterip_tg_init(void) 846static int __init clusterip_tg_init(void)
diff --git a/net/ipv4/netfilter/nf_defrag_ipv4.c b/net/ipv4/netfilter/nf_defrag_ipv4.c
index a0d3ad60a411..57244b62a4fc 100644
--- a/net/ipv4/netfilter/nf_defrag_ipv4.c
+++ b/net/ipv4/netfilter/nf_defrag_ipv4.c
@@ -118,6 +118,7 @@ static void __net_exit defrag4_net_exit(struct net *net)
118 118
119static struct pernet_operations defrag4_net_ops = { 119static struct pernet_operations defrag4_net_ops = {
120 .exit = defrag4_net_exit, 120 .exit = defrag4_net_exit,
121 .async = true,
121}; 122};
122 123
123static int __init nf_defrag_init(void) 124static int __init nf_defrag_init(void)
diff --git a/net/ipv6/ila/ila_xlat.c b/net/ipv6/ila/ila_xlat.c
index 44c39c5f0638..e438699f000f 100644
--- a/net/ipv6/ila/ila_xlat.c
+++ b/net/ipv6/ila/ila_xlat.c
@@ -613,6 +613,7 @@ static struct pernet_operations ila_net_ops = {
613 .exit = ila_exit_net, 613 .exit = ila_exit_net,
614 .id = &ila_net_id, 614 .id = &ila_net_id,
615 .size = sizeof(struct ila_net), 615 .size = sizeof(struct ila_net),
616 .async = true,
616}; 617};
617 618
618static int ila_xlat_addr(struct sk_buff *skb, bool sir2ila) 619static int ila_xlat_addr(struct sk_buff *skb, bool sir2ila)
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
index 3c353125546d..3026662a6413 100644
--- a/net/ipv6/ip6_gre.c
+++ b/net/ipv6/ip6_gre.c
@@ -1517,6 +1517,7 @@ static struct pernet_operations ip6gre_net_ops = {
1517 .exit_batch = ip6gre_exit_batch_net, 1517 .exit_batch = ip6gre_exit_batch_net,
1518 .id = &ip6gre_net_id, 1518 .id = &ip6gre_net_id,
1519 .size = sizeof(struct ip6gre_net), 1519 .size = sizeof(struct ip6gre_net),
1520 .async = true,
1520}; 1521};
1521 1522
1522static int ip6gre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], 1523static int ip6gre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
index 4b15fe928278..869e2e6750f7 100644
--- a/net/ipv6/ip6_tunnel.c
+++ b/net/ipv6/ip6_tunnel.c
@@ -2250,6 +2250,7 @@ static struct pernet_operations ip6_tnl_net_ops = {
2250 .exit_batch = ip6_tnl_exit_batch_net, 2250 .exit_batch = ip6_tnl_exit_batch_net,
2251 .id = &ip6_tnl_net_id, 2251 .id = &ip6_tnl_net_id,
2252 .size = sizeof(struct ip6_tnl_net), 2252 .size = sizeof(struct ip6_tnl_net),
2253 .async = true,
2253}; 2254};
2254 2255
2255/** 2256/**
diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
index fa3ae1cb50d3..c617ea17faa8 100644
--- a/net/ipv6/ip6_vti.c
+++ b/net/ipv6/ip6_vti.c
@@ -1148,6 +1148,7 @@ static struct pernet_operations vti6_net_ops = {
1148 .exit_batch = vti6_exit_batch_net, 1148 .exit_batch = vti6_exit_batch_net,
1149 .id = &vti6_net_id, 1149 .id = &vti6_net_id,
1150 .size = sizeof(struct vti6_net), 1150 .size = sizeof(struct vti6_net),
1151 .async = true,
1151}; 1152};
1152 1153
1153static struct xfrm6_protocol vti_esp6_protocol __read_mostly = { 1154static struct xfrm6_protocol vti_esp6_protocol __read_mostly = {
diff --git a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
index c87b48359e8f..32f98bc06900 100644
--- a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
+++ b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
@@ -103,6 +103,7 @@ static void __net_exit defrag6_net_exit(struct net *net)
103 103
104static struct pernet_operations defrag6_net_ops = { 104static struct pernet_operations defrag6_net_ops = {
105 .exit = defrag6_net_exit, 105 .exit = defrag6_net_exit,
106 .async = true,
106}; 107};
107 108
108static int __init nf_defrag_init(void) 109static int __init nf_defrag_init(void)
diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
index 3a1775a62973..182db078f01e 100644
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1878,6 +1878,7 @@ static struct pernet_operations sit_net_ops = {
1878 .exit_batch = sit_exit_batch_net, 1878 .exit_batch = sit_exit_batch_net,
1879 .id = &sit_net_id, 1879 .id = &sit_net_id,
1880 .size = sizeof(struct sit_net), 1880 .size = sizeof(struct sit_net),
1881 .async = true,
1881}; 1882};
1882 1883
1883static void __exit sit_cleanup(void) 1884static void __exit sit_cleanup(void)
diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c
index f85f0d7480ac..a9673619e0e9 100644
--- a/net/ipv6/xfrm6_tunnel.c
+++ b/net/ipv6/xfrm6_tunnel.c
@@ -353,6 +353,7 @@ static struct pernet_operations xfrm6_tunnel_net_ops = {
353 .exit = xfrm6_tunnel_net_exit, 353 .exit = xfrm6_tunnel_net_exit,
354 .id = &xfrm6_tunnel_net_id, 354 .id = &xfrm6_tunnel_net_id,
355 .size = sizeof(struct xfrm6_tunnel_net), 355 .size = sizeof(struct xfrm6_tunnel_net),
356 .async = true,
356}; 357};
357 358
358static int __init xfrm6_tunnel_init(void) 359static int __init xfrm6_tunnel_init(void)
diff --git a/net/kcm/kcmproc.c b/net/kcm/kcmproc.c
index 9d5649e4e8b7..2c1c8b3e4452 100644
--- a/net/kcm/kcmproc.c
+++ b/net/kcm/kcmproc.c
@@ -433,6 +433,7 @@ static void kcm_proc_exit_net(struct net *net)
433static struct pernet_operations kcm_net_ops = { 433static struct pernet_operations kcm_net_ops = {
434 .init = kcm_proc_init_net, 434 .init = kcm_proc_init_net,
435 .exit = kcm_proc_exit_net, 435 .exit = kcm_proc_exit_net,
436 .async = true,
436}; 437};
437 438
438int __init kcm_proc_init(void) 439int __init kcm_proc_init(void)
diff --git a/net/kcm/kcmsock.c b/net/kcm/kcmsock.c
index 435594648dac..a6cd0712e063 100644
--- a/net/kcm/kcmsock.c
+++ b/net/kcm/kcmsock.c
@@ -2015,6 +2015,7 @@ static struct pernet_operations kcm_net_ops = {
2015 .exit = kcm_exit_net, 2015 .exit = kcm_exit_net,
2016 .id = &kcm_net_id, 2016 .id = &kcm_net_id,
2017 .size = sizeof(struct kcm_net), 2017 .size = sizeof(struct kcm_net),
2018 .async = true,
2018}; 2019};
2019 2020
2020static int __init kcm_init(void) 2021static int __init kcm_init(void)
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 7e2e7188e7f4..3ac08ab26207 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -3863,6 +3863,7 @@ static struct pernet_operations pfkey_net_ops = {
3863 .exit = pfkey_net_exit, 3863 .exit = pfkey_net_exit,
3864 .id = &pfkey_net_id, 3864 .id = &pfkey_net_id,
3865 .size = sizeof(struct netns_pfkey), 3865 .size = sizeof(struct netns_pfkey),
3866 .async = true,
3866}; 3867};
3867 3868
3868static void __exit ipsec_pfkey_exit(void) 3869static void __exit ipsec_pfkey_exit(void)
diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c
index 99a03c72db4f..0c4f49a6a0cb 100644
--- a/net/l2tp/l2tp_ppp.c
+++ b/net/l2tp/l2tp_ppp.c
@@ -1770,6 +1770,7 @@ static struct pernet_operations pppol2tp_net_ops = {
1770 .init = pppol2tp_init_net, 1770 .init = pppol2tp_init_net,
1771 .exit = pppol2tp_exit_net, 1771 .exit = pppol2tp_exit_net,
1772 .id = &pppol2tp_net_id, 1772 .id = &pppol2tp_net_id,
1773 .async = true,
1773}; 1774};
1774 1775
1775/***************************************************************************** 1776/*****************************************************************************
diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
index d625179de485..6a340c94c4b8 100644
--- a/net/netfilter/ipvs/ip_vs_lblc.c
+++ b/net/netfilter/ipvs/ip_vs_lblc.c
@@ -604,6 +604,7 @@ static void __net_exit __ip_vs_lblc_exit(struct net *net) { }
604static struct pernet_operations ip_vs_lblc_ops = { 604static struct pernet_operations ip_vs_lblc_ops = {
605 .init = __ip_vs_lblc_init, 605 .init = __ip_vs_lblc_init,
606 .exit = __ip_vs_lblc_exit, 606 .exit = __ip_vs_lblc_exit,
607 .async = true,
607}; 608};
608 609
609static int __init ip_vs_lblc_init(void) 610static int __init ip_vs_lblc_init(void)
diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
index 84c57b62a588..0627881128da 100644
--- a/net/netfilter/ipvs/ip_vs_lblcr.c
+++ b/net/netfilter/ipvs/ip_vs_lblcr.c
@@ -789,6 +789,7 @@ static void __net_exit __ip_vs_lblcr_exit(struct net *net) { }
789static struct pernet_operations ip_vs_lblcr_ops = { 789static struct pernet_operations ip_vs_lblcr_ops = {
790 .init = __ip_vs_lblcr_init, 790 .init = __ip_vs_lblcr_init,
791 .exit = __ip_vs_lblcr_exit, 791 .exit = __ip_vs_lblcr_exit,
792 .async = true,
792}; 793};
793 794
794static int __init ip_vs_lblcr_init(void) 795static int __init ip_vs_lblcr_init(void)
diff --git a/net/netfilter/nf_synproxy_core.c b/net/netfilter/nf_synproxy_core.c
index 92139a087260..64b875e452ca 100644
--- a/net/netfilter/nf_synproxy_core.c
+++ b/net/netfilter/nf_synproxy_core.c
@@ -398,6 +398,7 @@ static struct pernet_operations synproxy_net_ops = {
398 .exit = synproxy_net_exit, 398 .exit = synproxy_net_exit,
399 .id = &synproxy_net_id, 399 .id = &synproxy_net_id,
400 .size = sizeof(struct synproxy_net), 400 .size = sizeof(struct synproxy_net),
401 .async = true,
401}; 402};
402 403
403static int __init synproxy_core_init(void) 404static int __init synproxy_core_init(void)
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 66f5aca62a08..db2fe0911740 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -1345,6 +1345,7 @@ static struct pernet_operations hashlimit_net_ops = {
1345 .exit = hashlimit_net_exit, 1345 .exit = hashlimit_net_exit,
1346 .id = &hashlimit_net_id, 1346 .id = &hashlimit_net_id,
1347 .size = sizeof(struct hashlimit_net), 1347 .size = sizeof(struct hashlimit_net),
1348 .async = true,
1348}; 1349};
1349 1350
1350static int __init hashlimit_mt_init(void) 1351static int __init hashlimit_mt_init(void)
diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
index 6d232d18faff..19efdb757944 100644
--- a/net/netfilter/xt_recent.c
+++ b/net/netfilter/xt_recent.c
@@ -687,6 +687,7 @@ static struct pernet_operations recent_net_ops = {
687 .exit = recent_net_exit, 687 .exit = recent_net_exit,
688 .id = &recent_net_id, 688 .id = &recent_net_id,
689 .size = sizeof(struct recent_net), 689 .size = sizeof(struct recent_net),
690 .async = true,
690}; 691};
691 692
692static struct xt_match recent_mt_reg[] __read_mostly = { 693static struct xt_match recent_mt_reg[] __read_mostly = {
diff --git a/net/phonet/pn_dev.c b/net/phonet/pn_dev.c
index 77787512fc32..9454e8393793 100644
--- a/net/phonet/pn_dev.c
+++ b/net/phonet/pn_dev.c
@@ -342,6 +342,7 @@ static struct pernet_operations phonet_net_ops = {
342 .exit = phonet_exit_net, 342 .exit = phonet_exit_net,
343 .id = &phonet_net_id, 343 .id = &phonet_net_id,
344 .size = sizeof(struct phonet_net), 344 .size = sizeof(struct phonet_net),
345 .async = true,
345}; 346};
346 347
347/* Initialize Phonet devices list */ 348/* Initialize Phonet devices list */
diff --git a/net/sched/act_bpf.c b/net/sched/act_bpf.c
index cb3c5d403c88..da72e0cf2b1f 100644
--- a/net/sched/act_bpf.c
+++ b/net/sched/act_bpf.c
@@ -413,6 +413,7 @@ static struct pernet_operations bpf_net_ops = {
413 .exit_batch = bpf_exit_net, 413 .exit_batch = bpf_exit_net,
414 .id = &bpf_net_id, 414 .id = &bpf_net_id,
415 .size = sizeof(struct tc_action_net), 415 .size = sizeof(struct tc_action_net),
416 .async = true,
416}; 417};
417 418
418static int __init bpf_init_module(void) 419static int __init bpf_init_module(void)
diff --git a/net/sched/act_connmark.c b/net/sched/act_connmark.c
index e4b880fa51fe..371e5e4ab3e2 100644
--- a/net/sched/act_connmark.c
+++ b/net/sched/act_connmark.c
@@ -222,6 +222,7 @@ static struct pernet_operations connmark_net_ops = {
222 .exit_batch = connmark_exit_net, 222 .exit_batch = connmark_exit_net,
223 .id = &connmark_net_id, 223 .id = &connmark_net_id,
224 .size = sizeof(struct tc_action_net), 224 .size = sizeof(struct tc_action_net),
225 .async = true,
225}; 226};
226 227
227static int __init connmark_init_module(void) 228static int __init connmark_init_module(void)
diff --git a/net/sched/act_csum.c b/net/sched/act_csum.c
index d5c2e528d150..1fb1f1f6a555 100644
--- a/net/sched/act_csum.c
+++ b/net/sched/act_csum.c
@@ -677,6 +677,7 @@ static struct pernet_operations csum_net_ops = {
677 .exit_batch = csum_exit_net, 677 .exit_batch = csum_exit_net,
678 .id = &csum_net_id, 678 .id = &csum_net_id,
679 .size = sizeof(struct tc_action_net), 679 .size = sizeof(struct tc_action_net),
680 .async = true,
680}; 681};
681 682
682MODULE_DESCRIPTION("Checksum updating actions"); 683MODULE_DESCRIPTION("Checksum updating actions");
diff --git a/net/sched/act_gact.c b/net/sched/act_gact.c
index f072bcf33760..74563254e676 100644
--- a/net/sched/act_gact.c
+++ b/net/sched/act_gact.c
@@ -247,6 +247,7 @@ static struct pernet_operations gact_net_ops = {
247 .exit_batch = gact_exit_net, 247 .exit_batch = gact_exit_net,
248 .id = &gact_net_id, 248 .id = &gact_net_id,
249 .size = sizeof(struct tc_action_net), 249 .size = sizeof(struct tc_action_net),
250 .async = true,
250}; 251};
251 252
252MODULE_AUTHOR("Jamal Hadi Salim(2002-4)"); 253MODULE_AUTHOR("Jamal Hadi Salim(2002-4)");
diff --git a/net/sched/act_ife.c b/net/sched/act_ife.c
index a5994cf0512b..555b1caeff72 100644
--- a/net/sched/act_ife.c
+++ b/net/sched/act_ife.c
@@ -870,6 +870,7 @@ static struct pernet_operations ife_net_ops = {
870 .exit_batch = ife_exit_net, 870 .exit_batch = ife_exit_net,
871 .id = &ife_net_id, 871 .id = &ife_net_id,
872 .size = sizeof(struct tc_action_net), 872 .size = sizeof(struct tc_action_net),
873 .async = true,
873}; 874};
874 875
875static int __init ife_init_module(void) 876static int __init ife_init_module(void)
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c
index 9784629090ad..10866717f88e 100644
--- a/net/sched/act_ipt.c
+++ b/net/sched/act_ipt.c
@@ -349,6 +349,7 @@ static struct pernet_operations ipt_net_ops = {
349 .exit_batch = ipt_exit_net, 349 .exit_batch = ipt_exit_net,
350 .id = &ipt_net_id, 350 .id = &ipt_net_id,
351 .size = sizeof(struct tc_action_net), 351 .size = sizeof(struct tc_action_net),
352 .async = true,
352}; 353};
353 354
354static int tcf_xt_walker(struct net *net, struct sk_buff *skb, 355static int tcf_xt_walker(struct net *net, struct sk_buff *skb,
@@ -399,6 +400,7 @@ static struct pernet_operations xt_net_ops = {
399 .exit_batch = xt_exit_net, 400 .exit_batch = xt_exit_net,
400 .id = &xt_net_id, 401 .id = &xt_net_id,
401 .size = sizeof(struct tc_action_net), 402 .size = sizeof(struct tc_action_net),
403 .async = true,
402}; 404};
403 405
404MODULE_AUTHOR("Jamal Hadi Salim(2002-13)"); 406MODULE_AUTHOR("Jamal Hadi Salim(2002-13)");
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c
index fd34015331ab..64c86579c3d9 100644
--- a/net/sched/act_mirred.c
+++ b/net/sched/act_mirred.c
@@ -353,6 +353,7 @@ static struct pernet_operations mirred_net_ops = {
353 .exit_batch = mirred_exit_net, 353 .exit_batch = mirred_exit_net,
354 .id = &mirred_net_id, 354 .id = &mirred_net_id,
355 .size = sizeof(struct tc_action_net), 355 .size = sizeof(struct tc_action_net),
356 .async = true,
356}; 357};
357 358
358MODULE_AUTHOR("Jamal Hadi Salim(2002)"); 359MODULE_AUTHOR("Jamal Hadi Salim(2002)");
diff --git a/net/sched/act_nat.c b/net/sched/act_nat.c
index 4b5848b6c252..b1bc757f6491 100644
--- a/net/sched/act_nat.c
+++ b/net/sched/act_nat.c
@@ -323,6 +323,7 @@ static struct pernet_operations nat_net_ops = {
323 .exit_batch = nat_exit_net, 323 .exit_batch = nat_exit_net,
324 .id = &nat_net_id, 324 .id = &nat_net_id,
325 .size = sizeof(struct tc_action_net), 325 .size = sizeof(struct tc_action_net),
326 .async = true,
326}; 327};
327 328
328MODULE_DESCRIPTION("Stateless NAT actions"); 329MODULE_DESCRIPTION("Stateless NAT actions");
diff --git a/net/sched/act_pedit.c b/net/sched/act_pedit.c
index 094303c27c5e..5e8cc8f63acd 100644
--- a/net/sched/act_pedit.c
+++ b/net/sched/act_pedit.c
@@ -465,6 +465,7 @@ static struct pernet_operations pedit_net_ops = {
465 .exit_batch = pedit_exit_net, 465 .exit_batch = pedit_exit_net,
466 .id = &pedit_net_id, 466 .id = &pedit_net_id,
467 .size = sizeof(struct tc_action_net), 467 .size = sizeof(struct tc_action_net),
468 .async = true,
468}; 469};
469 470
470MODULE_AUTHOR("Jamal Hadi Salim(2002-4)"); 471MODULE_AUTHOR("Jamal Hadi Salim(2002-4)");
diff --git a/net/sched/act_police.c b/net/sched/act_police.c
index ff55bd6c7db0..51fe4fe343f7 100644
--- a/net/sched/act_police.c
+++ b/net/sched/act_police.c
@@ -347,6 +347,7 @@ static struct pernet_operations police_net_ops = {
347 .exit_batch = police_exit_net, 347 .exit_batch = police_exit_net,
348 .id = &police_net_id, 348 .id = &police_net_id,
349 .size = sizeof(struct tc_action_net), 349 .size = sizeof(struct tc_action_net),
350 .async = true,
350}; 351};
351 352
352static int __init police_init_module(void) 353static int __init police_init_module(void)
diff --git a/net/sched/act_sample.c b/net/sched/act_sample.c
index 9765145aaf40..238dfd27e995 100644
--- a/net/sched/act_sample.c
+++ b/net/sched/act_sample.c
@@ -248,6 +248,7 @@ static struct pernet_operations sample_net_ops = {
248 .exit_batch = sample_exit_net, 248 .exit_batch = sample_exit_net,
249 .id = &sample_net_id, 249 .id = &sample_net_id,
250 .size = sizeof(struct tc_action_net), 250 .size = sizeof(struct tc_action_net),
251 .async = true,
251}; 252};
252 253
253static int __init sample_init_module(void) 254static int __init sample_init_module(void)
diff --git a/net/sched/act_simple.c b/net/sched/act_simple.c
index 8244e221fe4f..91816d73f3f3 100644
--- a/net/sched/act_simple.c
+++ b/net/sched/act_simple.c
@@ -216,6 +216,7 @@ static struct pernet_operations simp_net_ops = {
216 .exit_batch = simp_exit_net, 216 .exit_batch = simp_exit_net,
217 .id = &simp_net_id, 217 .id = &simp_net_id,
218 .size = sizeof(struct tc_action_net), 218 .size = sizeof(struct tc_action_net),
219 .async = true,
219}; 220};
220 221
221MODULE_AUTHOR("Jamal Hadi Salim(2005)"); 222MODULE_AUTHOR("Jamal Hadi Salim(2005)");
diff --git a/net/sched/act_skbedit.c b/net/sched/act_skbedit.c
index ddf69fc01bdf..7971510fe61b 100644
--- a/net/sched/act_skbedit.c
+++ b/net/sched/act_skbedit.c
@@ -253,6 +253,7 @@ static struct pernet_operations skbedit_net_ops = {
253 .exit_batch = skbedit_exit_net, 253 .exit_batch = skbedit_exit_net,
254 .id = &skbedit_net_id, 254 .id = &skbedit_net_id,
255 .size = sizeof(struct tc_action_net), 255 .size = sizeof(struct tc_action_net),
256 .async = true,
256}; 257};
257 258
258MODULE_AUTHOR("Alexander Duyck, <alexander.h.duyck@intel.com>"); 259MODULE_AUTHOR("Alexander Duyck, <alexander.h.duyck@intel.com>");
diff --git a/net/sched/act_skbmod.c b/net/sched/act_skbmod.c
index a406f191cb84..febec75f4f7a 100644
--- a/net/sched/act_skbmod.c
+++ b/net/sched/act_skbmod.c
@@ -278,6 +278,7 @@ static struct pernet_operations skbmod_net_ops = {
278 .exit_batch = skbmod_exit_net, 278 .exit_batch = skbmod_exit_net,
279 .id = &skbmod_net_id, 279 .id = &skbmod_net_id,
280 .size = sizeof(struct tc_action_net), 280 .size = sizeof(struct tc_action_net),
281 .async = true,
281}; 282};
282 283
283MODULE_AUTHOR("Jamal Hadi Salim, <jhs@mojatatu.com>"); 284MODULE_AUTHOR("Jamal Hadi Salim, <jhs@mojatatu.com>");
diff --git a/net/sched/act_tunnel_key.c b/net/sched/act_tunnel_key.c
index 41ff9d0e5c62..9169b7e78ada 100644
--- a/net/sched/act_tunnel_key.c
+++ b/net/sched/act_tunnel_key.c
@@ -337,6 +337,7 @@ static struct pernet_operations tunnel_key_net_ops = {
337 .exit_batch = tunnel_key_exit_net, 337 .exit_batch = tunnel_key_exit_net,
338 .id = &tunnel_key_net_id, 338 .id = &tunnel_key_net_id,
339 .size = sizeof(struct tc_action_net), 339 .size = sizeof(struct tc_action_net),
340 .async = true,
340}; 341};
341 342
342static int __init tunnel_key_init_module(void) 343static int __init tunnel_key_init_module(void)
diff --git a/net/sched/act_vlan.c b/net/sched/act_vlan.c
index 71411a255f04..c2ee7fd51cc9 100644
--- a/net/sched/act_vlan.c
+++ b/net/sched/act_vlan.c
@@ -313,6 +313,7 @@ static struct pernet_operations vlan_net_ops = {
313 .exit_batch = vlan_exit_net, 313 .exit_batch = vlan_exit_net,
314 .id = &vlan_net_id, 314 .id = &vlan_net_id,
315 .size = sizeof(struct tc_action_net), 315 .size = sizeof(struct tc_action_net),
316 .async = true,
316}; 317};
317 318
318static int __init vlan_init_module(void) 319static int __init vlan_init_module(void)
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 9d1a8bbf8152..19f9f421d5b7 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -1618,6 +1618,7 @@ static struct pernet_operations tcf_net_ops = {
1618 .exit = tcf_net_exit, 1618 .exit = tcf_net_exit,
1619 .id = &tcf_net_id, 1619 .id = &tcf_net_id,
1620 .size = sizeof(struct tcf_net), 1620 .size = sizeof(struct tcf_net),
1621 .async = true,
1621}; 1622};
1622 1623
1623static int __init tc_filter_init(void) 1624static int __init tc_filter_init(void)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 8644d864e3c1..b4d7b6242a40 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -6743,6 +6743,7 @@ static void __net_exit selinux_nf_unregister(struct net *net)
6743static struct pernet_operations selinux_net_ops = { 6743static struct pernet_operations selinux_net_ops = {
6744 .init = selinux_nf_register, 6744 .init = selinux_nf_register,
6745 .exit = selinux_nf_unregister, 6745 .exit = selinux_nf_unregister,
6746 .async = true,
6746}; 6747};
6747 6748
6748static int __init selinux_nf_ip_init(void) 6749static int __init selinux_nf_ip_init(void)
diff --git a/security/smack/smack_netfilter.c b/security/smack/smack_netfilter.c
index e36d17835d4f..3f29c03162ca 100644
--- a/security/smack/smack_netfilter.c
+++ b/security/smack/smack_netfilter.c
@@ -89,6 +89,7 @@ static void __net_exit smack_nf_unregister(struct net *net)
89static struct pernet_operations smack_net_ops = { 89static struct pernet_operations smack_net_ops = {
90 .init = smack_nf_register, 90 .init = smack_nf_register,
91 .exit = smack_nf_unregister, 91 .exit = smack_nf_unregister,
92 .async = true,
92}; 93};
93 94
94static int __init smack_nf_ip_init(void) 95static int __init smack_nf_ip_init(void)