Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'pernet-all-async'

Kirill Tkhai says:

====================
Make pernet_operations always read locked

All the pernet_operations are converted, and the last one
is in this patchset (nfsd_net_ops acked by J. Bruce Fields).
So, it's the time to kill pernet_operations::async field,
and make setup_net() and cleanup_net() always require
the rwsem only read locked.

All further pernet_operations have to be developed to fit
this rule. Some of previous patches added a comment to
struct pernet_operations about that.

Also, this patchset renames net_sem to pernet_ops_rwsem
to make the target area of the rwsem is more clear visible,
and adds more comments.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>

+38 -266
-1
drivers/infiniband/core/cma.c
··· 4554 4554 .exit = cma_exit_net, 4555 4555 .id = &cma_pernet_id, 4556 4556 .size = sizeof(struct cma_pernet), 4557 - .async = true, 4558 4557 }; 4559 4558 4560 4559 static int __init cma_init(void)
-1
drivers/net/bonding/bond_main.c
··· 4791 4791 .exit = bond_net_exit, 4792 4792 .id = &bond_net_id, 4793 4793 .size = sizeof(struct bond_net), 4794 - .async = true, 4795 4794 }; 4796 4795 4797 4796 static int __init bonding_init(void)
-1
drivers/net/geneve.c
··· 1694 1694 .exit_batch = geneve_exit_batch_net, 1695 1695 .id = &geneve_net_id, 1696 1696 .size = sizeof(struct geneve_net), 1697 - .async = true, 1698 1697 }; 1699 1698 1700 1699 static int __init geneve_init_module(void)
-1
drivers/net/gtp.c
··· 1325 1325 .exit = gtp_net_exit, 1326 1326 .id = &gtp_net_id, 1327 1327 .size = sizeof(struct gtp_net), 1328 - .async = true, 1329 1328 }; 1330 1329 1331 1330 static int __init gtp_init(void)
-1
drivers/net/ipvlan/ipvlan_main.c
··· 1040 1040 .id = &ipvlan_netid, 1041 1041 .size = sizeof(struct ipvlan_netns), 1042 1042 .exit = ipvlan_ns_exit, 1043 - .async = true, 1044 1043 }; 1045 1044 1046 1045 static int __init ipvlan_init_module(void)
-1
drivers/net/loopback.c
··· 230 230 /* Registered in net/core/dev.c */ 231 231 struct pernet_operations __net_initdata loopback_net_ops = { 232 232 .init = loopback_net_init, 233 - .async = true, 234 233 };
-1
drivers/net/ppp/ppp_generic.c
··· 970 970 .exit = ppp_exit_net, 971 971 .id = &ppp_net_id, 972 972 .size = sizeof(struct ppp_net), 973 - .async = true, 974 973 }; 975 974 976 975 static int ppp_unit_register(struct ppp *ppp, int unit, bool ifname_is_set)
-1
drivers/net/ppp/pppoe.c
··· 1161 1161 .exit = pppoe_exit_net, 1162 1162 .id = &pppoe_net_id, 1163 1163 .size = sizeof(struct pppoe_net), 1164 - .async = true, 1165 1164 }; 1166 1165 1167 1166 static int __init pppoe_init(void)
-1
drivers/net/vrf.c
··· 1435 1435 .init = vrf_netns_init, 1436 1436 .id = &vrf_net_id, 1437 1437 .size = sizeof(bool), 1438 - .async = true, 1439 1438 }; 1440 1439 1441 1440 static int __init vrf_init_module(void)
-1
drivers/net/vxlan.c
··· 3752 3752 .exit_batch = vxlan_exit_batch_net, 3753 3753 .id = &vxlan_net_id, 3754 3754 .size = sizeof(struct vxlan_net), 3755 - .async = true, 3756 3755 }; 3757 3756 3758 3757 static int __init vxlan_init_module(void)
-1
drivers/net/wireless/mac80211_hwsim.c
··· 3542 3542 .exit = hwsim_exit_net, 3543 3543 .id = &hwsim_net_id, 3544 3544 .size = sizeof(struct hwsim_net), 3545 - .async = true, 3546 3545 }; 3547 3546 3548 3547 static void hwsim_exit_netlink(void)
-1
fs/lockd/svc.c
··· 709 709 .exit = lockd_exit_net, 710 710 .id = &lockd_net_id, 711 711 .size = sizeof(struct lockd_net), 712 - .async = true, 713 712 }; 714 713 715 714
-1
fs/nfs/blocklayout/rpc_pipefs.c
··· 261 261 static struct pernet_operations nfs4blocklayout_net_ops = { 262 262 .init = nfs4blocklayout_net_init, 263 263 .exit = nfs4blocklayout_net_exit, 264 - .async = true, 265 264 }; 266 265 267 266 int __init bl_init_pipefs(void)
-1
fs/nfs/dns_resolve.c
··· 410 410 static struct pernet_operations nfs4_dns_resolver_ops = { 411 411 .init = nfs4_dns_net_init, 412 412 .exit = nfs4_dns_net_exit, 413 - .async = true, 414 413 }; 415 414 416 415 static int rpc_pipefs_event(struct notifier_block *nb, unsigned long event,
-1
fs/nfs/inode.c
··· 2122 2122 .exit = nfs_net_exit, 2123 2123 .id = &nfs_net_id, 2124 2124 .size = sizeof(struct nfs_net), 2125 - .async = true, 2126 2125 }; 2127 2126 2128 2127 /*
-1
fs/nfs_common/grace.c
··· 118 118 .exit = grace_exit_net, 119 119 .id = &grace_net_id, 120 120 .size = sizeof(struct list_head), 121 - .async = true, 122 121 }; 123 122 124 123 static int __init
-1
fs/proc/proc_net.c
··· 237 237 static struct pernet_operations __net_initdata proc_net_ns_ops = { 238 238 .init = proc_net_ns_init, 239 239 .exit = proc_net_ns_exit, 240 - .async = true, 241 240 }; 242 241 243 242 int __init proc_net_init(void)
+1 -1
include/linux/rtnetlink.h
··· 36 36 extern int rtnl_lock_killable(void); 37 37 38 38 extern wait_queue_head_t netdev_unregistering_wq; 39 - extern struct rw_semaphore net_sem; 39 + extern struct rw_semaphore pernet_ops_rwsem; 40 40 41 41 #ifdef CONFIG_PROVE_LOCKING 42 42 extern bool lockdep_rtnl_is_held(void);
+11 -11
include/net/net_namespace.h
··· 60 60 61 61 struct list_head list; /* list of network namespaces */ 62 62 struct list_head exit_list; /* To linked to call pernet exit 63 - * methods on dead net (net_sem 64 - * read locked), or to unregister 65 - * pernet ops (net_sem wr locked). 63 + * methods on dead net ( 64 + * pernet_ops_rwsem read locked), 65 + * or to unregister pernet ops 66 + * (pernet_ops_rwsem write locked). 66 67 */ 67 68 struct llist_node cleanup_list; /* namespaces on death row */ 68 69 ··· 96 95 /* core fib_rules */ 97 96 struct list_head rules_ops; 98 97 99 - struct list_head fib_notifier_ops; /* protected by net_sem */ 100 - 98 + struct list_head fib_notifier_ops; /* Populated by 99 + * register_pernet_subsys() 100 + */ 101 101 struct net_device *loopback_dev; /* The loopback */ 102 102 struct netns_core core; 103 103 struct netns_mib mib; ··· 323 321 * have to keep in mind all other pernet_operations and 324 322 * to introduce a locking, if they share common resources. 325 323 * 324 + * The only time they are called with exclusive lock is 325 + * from register_pernet_subsys(), unregister_pernet_subsys() 326 + * register_pernet_device() and unregister_pernet_device(). 327 + * 326 328 * Exit methods using blocking RCU primitives, such as 327 329 * synchronize_rcu(), should be implemented via exit_batch. 328 330 * Then, destruction of a group of net requires single ··· 339 333 void (*exit_batch)(struct list_head *net_exit_list); 340 334 unsigned int *id; 341 335 size_t size; 342 - /* 343 - * Indicates above methods are allowed to be executed in parallel 344 - * with methods of any other pernet_operations, i.e. they are not 345 - * need write locked net_sem. 346 - */ 347 - bool async; 348 336 }; 349 337 350 338 /*
-1
kernel/audit.c
··· 1526 1526 .exit = audit_net_exit, 1527 1527 .id = &audit_net_id, 1528 1528 .size = sizeof(struct audit_net), 1529 - .async = true, 1530 1529 }; 1531 1530 1532 1531 /* Initialize audit support at boot time. */
-1
lib/kobject_uevent.c
··· 724 724 static struct pernet_operations uevent_net_ops = { 725 725 .init = uevent_net_init, 726 726 .exit = uevent_net_exit, 727 - .async = true, 728 727 }; 729 728 730 729 static int __init kobject_uevent_init(void)
-1
net/8021q/vlan.c
··· 729 729 .exit = vlan_exit_net, 730 730 .id = &vlan_net_id, 731 731 .size = sizeof(struct vlan_net), 732 - .async = true, 733 732 }; 734 733 735 734 static int __init vlan_proto_init(void)
-1
net/bridge/br.c
··· 188 188 189 189 static struct pernet_operations br_net_ops = { 190 190 .exit = br_net_exit, 191 - .async = true, 192 191 }; 193 192 194 193 static const struct stp_proto br_stp_proto = {
-1
net/bridge/br_netfilter_hooks.c
··· 969 969 .exit = brnf_exit_net, 970 970 .id = &brnf_net_id, 971 971 .size = sizeof(struct brnf_net), 972 - .async = true, 973 972 }; 974 973 975 974 static struct notifier_block brnf_notifier __read_mostly = {
-1
net/bridge/netfilter/ebtable_broute.c
··· 77 77 static struct pernet_operations broute_net_ops = { 78 78 .init = broute_net_init, 79 79 .exit = broute_net_exit, 80 - .async = true, 81 80 }; 82 81 83 82 static int __init ebtable_broute_init(void)
-1
net/bridge/netfilter/ebtable_filter.c
··· 105 105 static struct pernet_operations frame_filter_net_ops = { 106 106 .init = frame_filter_net_init, 107 107 .exit = frame_filter_net_exit, 108 - .async = true, 109 108 }; 110 109 111 110 static int __init ebtable_filter_init(void)
-1
net/bridge/netfilter/ebtable_nat.c
··· 105 105 static struct pernet_operations frame_nat_net_ops = { 106 106 .init = frame_nat_net_init, 107 107 .exit = frame_nat_net_exit, 108 - .async = true, 109 108 }; 110 109 111 110 static int __init ebtable_nat_init(void)
-1
net/bridge/netfilter/nf_log_bridge.c
··· 48 48 static struct pernet_operations nf_log_bridge_net_ops = { 49 49 .init = nf_log_bridge_net_init, 50 50 .exit = nf_log_bridge_net_exit, 51 - .async = true, 52 51 }; 53 52 54 53 static int __init nf_log_bridge_init(void)
-1
net/caif/caif_dev.c
··· 544 544 .exit = caif_exit_net, 545 545 .id = &caif_net_id, 546 546 .size = sizeof(struct caif_net), 547 - .async = true, 548 547 }; 549 548 550 549 /* Initialize Caif devices list */
-1
net/can/af_can.c
··· 954 954 static struct pernet_operations can_pernet_ops __read_mostly = { 955 955 .init = can_pernet_init, 956 956 .exit = can_pernet_exit, 957 - .async = true, 958 957 }; 959 958 960 959 static __init int can_init(void)
-1
net/can/bcm.c
··· 1717 1717 static struct pernet_operations canbcm_pernet_ops __read_mostly = { 1718 1718 .init = canbcm_pernet_init, 1719 1719 .exit = canbcm_pernet_exit, 1720 - .async = true, 1721 1720 }; 1722 1721 1723 1722 static int __init bcm_module_init(void)
-1
net/can/gw.c
··· 1010 1010 static struct pernet_operations cangw_pernet_ops = { 1011 1011 .init = cangw_pernet_init, 1012 1012 .exit = cangw_pernet_exit, 1013 - .async = true, 1014 1013 }; 1015 1014 1016 1015 static __init int cgw_module_init(void)
-2
net/core/dev.c
··· 8883 8883 static struct pernet_operations __net_initdata netdev_net_ops = { 8884 8884 .init = netdev_init, 8885 8885 .exit = netdev_exit, 8886 - .async = true, 8887 8886 }; 8888 8887 8889 8888 static void __net_exit default_device_exit(struct net *net) ··· 8983 8984 static struct pernet_operations __net_initdata default_device_ops = { 8984 8985 .exit = default_device_exit, 8985 8986 .exit_batch = default_device_exit_batch, 8986 - .async = true, 8987 8987 }; 8988 8988 8989 8989 /*
-1
net/core/fib_notifier.c
··· 171 171 static struct pernet_operations fib_notifier_net_ops = { 172 172 .init = fib_notifier_net_init, 173 173 .exit = fib_notifier_net_exit, 174 - .async = true, 175 174 }; 176 175 177 176 static int __init fib_notifier_init(void)
-1
net/core/fib_rules.c
··· 1130 1130 static struct pernet_operations fib_rules_net_ops = { 1131 1131 .init = fib_rules_net_init, 1132 1132 .exit = fib_rules_net_exit, 1133 - .async = true, 1134 1133 }; 1135 1134 1136 1135 static int __init fib_rules_init(void)
-2
net/core/net-procfs.c
··· 349 349 static struct pernet_operations __net_initdata dev_proc_ops = { 350 350 .init = dev_proc_net_init, 351 351 .exit = dev_proc_net_exit, 352 - .async = true, 353 352 }; 354 353 355 354 static int dev_mc_seq_show(struct seq_file *seq, void *v) ··· 405 406 static struct pernet_operations __net_initdata dev_mc_net_ops = { 406 407 .init = dev_mc_net_init, 407 408 .exit = dev_mc_net_exit, 408 - .async = true, 409 409 }; 410 410 411 411 int __init dev_proc_init(void)
+23 -54
net/core/net_namespace.c
··· 40 40 EXPORT_SYMBOL(init_net); 41 41 42 42 static bool init_net_initialized; 43 - static unsigned nr_sync_pernet_ops; 44 43 /* 45 - * net_sem: protects: pernet_list, net_generic_ids, nr_sync_pernet_ops, 44 + * pernet_ops_rwsem: protects: pernet_list, net_generic_ids, 46 45 * init_net_initialized and first_device pointer. 46 + * This is internal net namespace object. Please, don't use it 47 + * outside. 47 48 */ 48 - DECLARE_RWSEM(net_sem); 49 + DECLARE_RWSEM(pernet_ops_rwsem); 49 50 50 51 #define MIN_PERNET_OPS_ID \ 51 52 ((sizeof(struct net_generic) + sizeof(void *) - 1) / sizeof(void *)) ··· 74 73 BUG_ON(id < MIN_PERNET_OPS_ID); 75 74 76 75 old_ng = rcu_dereference_protected(net->gen, 77 - lockdep_is_held(&net_sem)); 76 + lockdep_is_held(&pernet_ops_rwsem)); 78 77 if (old_ng->s.len > id) { 79 78 old_ng->ptr[id] = data; 80 79 return 0; ··· 291 290 */ 292 291 static __net_init int setup_net(struct net *net, struct user_namespace *user_ns) 293 292 { 294 - /* Must be called with net_sem held */ 293 + /* Must be called with pernet_ops_rwsem held */ 295 294 const struct pernet_operations *ops, *saved_ops; 296 295 int error = 0; 297 296 LIST_HEAD(net_exit_list); ··· 340 339 341 340 static struct pernet_operations net_defaults_ops = { 342 341 .init = net_defaults_init_net, 343 - .async = true, 344 342 }; 345 343 346 344 static __init int net_defaults_init(void) ··· 406 406 { 407 407 struct ucounts *ucounts; 408 408 struct net *net; 409 - unsigned write; 410 409 int rv; 411 410 412 411 if (!(flags & CLONE_NEWNET)) ··· 423 424 refcount_set(&net->passive, 1); 424 425 net->ucounts = ucounts; 425 426 get_user_ns(user_ns); 426 - again: 427 - write = READ_ONCE(nr_sync_pernet_ops); 428 - if (write) 429 - rv = down_write_killable(&net_sem); 430 - else 431 - rv = down_read_killable(&net_sem); 427 + 428 + rv = down_read_killable(&pernet_ops_rwsem); 432 429 if (rv < 0) 433 430 goto put_userns; 434 431 435 - if (!write && unlikely(READ_ONCE(nr_sync_pernet_ops))) { 436 - up_read(&net_sem); 437 - goto again; 438 - } 439 432 rv = setup_net(net, user_ns); 440 433 441 - if (write) 442 - up_write(&net_sem); 443 - else 444 - up_read(&net_sem); 434 + up_read(&pernet_ops_rwsem); 445 435 446 436 if (rv < 0) { 447 437 put_userns: ··· 478 490 struct net *net, *tmp, *last; 479 491 struct llist_node *net_kill_list; 480 492 LIST_HEAD(net_exit_list); 481 - unsigned write; 482 493 483 494 /* Atomically snapshot the list of namespaces to cleanup */ 484 495 net_kill_list = llist_del_all(&cleanup_list); 485 - again: 486 - write = READ_ONCE(nr_sync_pernet_ops); 487 - if (write) 488 - down_write(&net_sem); 489 - else 490 - down_read(&net_sem); 491 496 492 - if (!write && unlikely(READ_ONCE(nr_sync_pernet_ops))) { 493 - up_read(&net_sem); 494 - goto again; 495 - } 497 + down_read(&pernet_ops_rwsem); 496 498 497 499 /* Don't let anyone else find us. */ 498 500 rtnl_lock(); ··· 521 543 list_for_each_entry_reverse(ops, &pernet_list, list) 522 544 ops_free_list(ops, &net_exit_list); 523 545 524 - if (write) 525 - up_write(&net_sem); 526 - else 527 - up_read(&net_sem); 546 + up_read(&pernet_ops_rwsem); 528 547 529 548 /* Ensure there are no outstanding rcu callbacks using this 530 549 * network namespace. ··· 548 573 */ 549 574 void net_ns_barrier(void) 550 575 { 551 - down_write(&net_sem); 552 - up_write(&net_sem); 576 + down_write(&pernet_ops_rwsem); 577 + up_write(&pernet_ops_rwsem); 553 578 } 554 579 EXPORT_SYMBOL(net_ns_barrier); 555 580 ··· 629 654 static struct pernet_operations __net_initdata net_ns_ops = { 630 655 .init = net_ns_net_init, 631 656 .exit = net_ns_net_exit, 632 - .async = true, 633 657 }; 634 658 635 659 static const struct nla_policy rtnl_net_policy[NETNSA_MAX + 1] = { ··· 871 897 872 898 rcu_assign_pointer(init_net.gen, ng); 873 899 874 - down_write(&net_sem); 900 + down_write(&pernet_ops_rwsem); 875 901 if (setup_net(&init_net, &init_user_ns)) 876 902 panic("Could not setup the initial network namespace"); 877 903 878 904 init_net_initialized = true; 879 - up_write(&net_sem); 905 + up_write(&pernet_ops_rwsem); 880 906 881 907 register_pernet_subsys(&net_ns_ops); 882 908 ··· 980 1006 rcu_barrier(); 981 1007 if (ops->id) 982 1008 ida_remove(&net_generic_ids, *ops->id); 983 - } else if (!ops->async) { 984 - pr_info_once("Pernet operations %ps are sync.\n", ops); 985 - nr_sync_pernet_ops++; 986 1009 } 987 1010 988 1011 return error; ··· 987 1016 988 1017 static void unregister_pernet_operations(struct pernet_operations *ops) 989 1018 { 990 - if (!ops->async) 991 - BUG_ON(nr_sync_pernet_ops-- == 0); 992 1019 __unregister_pernet_operations(ops); 993 1020 rcu_barrier(); 994 1021 if (ops->id) ··· 1015 1046 int register_pernet_subsys(struct pernet_operations *ops) 1016 1047 { 1017 1048 int error; 1018 - down_write(&net_sem); 1049 + down_write(&pernet_ops_rwsem); 1019 1050 error = register_pernet_operations(first_device, ops); 1020 - up_write(&net_sem); 1051 + up_write(&pernet_ops_rwsem); 1021 1052 return error; 1022 1053 } 1023 1054 EXPORT_SYMBOL_GPL(register_pernet_subsys); ··· 1033 1064 */ 1034 1065 void unregister_pernet_subsys(struct pernet_operations *ops) 1035 1066 { 1036 - down_write(&net_sem); 1067 + down_write(&pernet_ops_rwsem); 1037 1068 unregister_pernet_operations(ops); 1038 - up_write(&net_sem); 1069 + up_write(&pernet_ops_rwsem); 1039 1070 } 1040 1071 EXPORT_SYMBOL_GPL(unregister_pernet_subsys); 1041 1072 ··· 1061 1092 int register_pernet_device(struct pernet_operations *ops) 1062 1093 { 1063 1094 int error; 1064 - down_write(&net_sem); 1095 + down_write(&pernet_ops_rwsem); 1065 1096 error = register_pernet_operations(&pernet_list, ops); 1066 1097 if (!error && (first_device == &pernet_list)) 1067 1098 first_device = &ops->list; 1068 - up_write(&net_sem); 1099 + up_write(&pernet_ops_rwsem); 1069 1100 return error; 1070 1101 } 1071 1102 EXPORT_SYMBOL_GPL(register_pernet_device); ··· 1081 1112 */ 1082 1113 void unregister_pernet_device(struct pernet_operations *ops) 1083 1114 { 1084 - down_write(&net_sem); 1115 + down_write(&pernet_ops_rwsem); 1085 1116 if (&ops->list == first_device) 1086 1117 first_device = first_device->next; 1087 1118 unregister_pernet_operations(ops); 1088 - up_write(&net_sem); 1119 + up_write(&pernet_ops_rwsem); 1089 1120 } 1090 1121 EXPORT_SYMBOL_GPL(unregister_pernet_device); 1091 1122
-1
net/core/pktgen.c
··· 3852 3852 .exit = pg_net_exit, 3853 3853 .id = &pg_net_id, 3854 3854 .size = sizeof(struct pktgen_net), 3855 - .async = true, 3856 3855 }; 3857 3856 3858 3857 static int __init pg_init(void)
+3 -4
net/core/rtnetlink.c
··· 459 459 */ 460 460 void rtnl_link_unregister(struct rtnl_link_ops *ops) 461 461 { 462 - /* Close the race with cleanup_net() */ 463 - down_write(&net_sem); 462 + /* Close the race with setup_net() and cleanup_net() */ 463 + down_write(&pernet_ops_rwsem); 464 464 rtnl_lock_unregistering_all(); 465 465 __rtnl_link_unregister(ops); 466 466 rtnl_unlock(); 467 - up_write(&net_sem); 467 + up_write(&pernet_ops_rwsem); 468 468 } 469 469 EXPORT_SYMBOL_GPL(rtnl_link_unregister); 470 470 ··· 4730 4730 static struct pernet_operations rtnetlink_net_ops = { 4731 4731 .init = rtnetlink_net_init, 4732 4732 .exit = rtnetlink_net_exit, 4733 - .async = true, 4734 4733 }; 4735 4734 4736 4735 void __init rtnetlink_init(void)
-2
net/core/sock.c
··· 3175 3175 static struct pernet_operations net_inuse_ops = { 3176 3176 .init = sock_inuse_init_net, 3177 3177 .exit = sock_inuse_exit_net, 3178 - .async = true, 3179 3178 }; 3180 3179 3181 3180 static __init int net_inuse_init(void) ··· 3469 3470 static __net_initdata struct pernet_operations proto_net_ops = { 3470 3471 .init = proto_init_net, 3471 3472 .exit = proto_exit_net, 3472 - .async = true, 3473 3473 }; 3474 3474 3475 3475 static int __init proto_init(void)
-1
net/core/sock_diag.c
··· 324 324 static struct pernet_operations diag_net_ops = { 325 325 .init = diag_net_init, 326 326 .exit = diag_net_exit, 327 - .async = true, 328 327 }; 329 328 330 329 static int __init sock_diag_init(void)
-1
net/core/sysctl_net_core.c
··· 584 584 static __net_initdata struct pernet_operations sysctl_core_ops = { 585 585 .init = sysctl_core_net_init, 586 586 .exit = sysctl_core_net_exit, 587 - .async = true, 588 587 }; 589 588 590 589 static __init int sysctl_core_init(void)
-1
net/dccp/ipv4.c
··· 1031 1031 .init = dccp_v4_init_net, 1032 1032 .exit = dccp_v4_exit_net, 1033 1033 .exit_batch = dccp_v4_exit_batch, 1034 - .async = true, 1035 1034 }; 1036 1035 1037 1036 static int __init dccp_v4_init(void)
-1
net/dccp/ipv6.c
··· 1116 1116 .init = dccp_v6_init_net, 1117 1117 .exit = dccp_v6_exit_net, 1118 1118 .exit_batch = dccp_v6_exit_batch, 1119 - .async = true, 1120 1119 }; 1121 1120 1122 1121 static int __init dccp_v6_init(void)
-1
net/ieee802154/6lowpan/reassembly.c
··· 603 603 static struct pernet_operations lowpan_frags_ops = { 604 604 .init = lowpan_frags_init_net, 605 605 .exit = lowpan_frags_exit_net, 606 - .async = true, 607 606 }; 608 607 609 608 int __init lowpan_net_frag_init(void)
-1
net/ieee802154/core.c
··· 345 345 346 346 static struct pernet_operations cfg802154_pernet_ops = { 347 347 .exit = cfg802154_pernet_exit, 348 - .async = true, 349 348 }; 350 349 351 350 static int __init wpan_phy_class_init(void)
-2
net/ipv4/af_inet.c
··· 1735 1735 static __net_initdata struct pernet_operations ipv4_mib_ops = { 1736 1736 .init = ipv4_mib_init_net, 1737 1737 .exit = ipv4_mib_exit_net, 1738 - .async = true, 1739 1738 }; 1740 1739 1741 1740 static int __init init_ipv4_mibs(void) ··· 1788 1789 static __net_initdata struct pernet_operations af_inet_ops = { 1789 1790 .init = inet_init_net, 1790 1791 .exit = inet_exit_net, 1791 - .async = true, 1792 1792 }; 1793 1793 1794 1794 static int __init init_inet_pernet_ops(void)
-1
net/ipv4/arp.c
··· 1447 1447 static struct pernet_operations arp_net_ops = { 1448 1448 .init = arp_net_init, 1449 1449 .exit = arp_net_exit, 1450 - .async = true, 1451 1450 }; 1452 1451 1453 1452 static int __init arp_proc_init(void)
-1
net/ipv4/devinet.c
··· 2469 2469 static __net_initdata struct pernet_operations devinet_ops = { 2470 2470 .init = devinet_init_net, 2471 2471 .exit = devinet_exit_net, 2472 - .async = true, 2473 2472 }; 2474 2473 2475 2474 static struct rtnl_af_ops inet_af_ops __read_mostly = {
-1
net/ipv4/fib_frontend.c
··· 1362 1362 static struct pernet_operations fib_net_ops = { 1363 1363 .init = fib_net_init, 1364 1364 .exit = fib_net_exit, 1365 - .async = true, 1366 1365 }; 1367 1366 1368 1367 void __init ip_fib_init(void)
-1
net/ipv4/fou.c
··· 1081 1081 .exit = fou_exit_net, 1082 1082 .id = &fou_net_id, 1083 1083 .size = sizeof(struct fou_net), 1084 - .async = true, 1085 1084 }; 1086 1085 1087 1086 static int __init fou_init(void)
-1
net/ipv4/icmp.c
··· 1257 1257 static struct pernet_operations __net_initdata icmp_sk_ops = { 1258 1258 .init = icmp_sk_init, 1259 1259 .exit = icmp_sk_exit, 1260 - .async = true, 1261 1260 }; 1262 1261 1263 1262 int __init icmp_init(void)
-1
net/ipv4/igmp.c
··· 3028 3028 static struct pernet_operations igmp_net_ops = { 3029 3029 .init = igmp_net_init, 3030 3030 .exit = igmp_net_exit, 3031 - .async = true, 3032 3031 }; 3033 3032 #endif 3034 3033
-1
net/ipv4/ip_fragment.c
··· 885 885 static struct pernet_operations ip4_frags_ops = { 886 886 .init = ipv4_frags_init_net, 887 887 .exit = ipv4_frags_exit_net, 888 - .async = true, 889 888 }; 890 889 891 890 void __init ipfrag_init(void)
-3
net/ipv4/ip_gre.c
··· 1044 1044 .exit_batch = ipgre_exit_batch_net, 1045 1045 .id = &ipgre_net_id, 1046 1046 .size = sizeof(struct ip_tunnel_net), 1047 - .async = true, 1048 1047 }; 1049 1048 1050 1049 static int ipgre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[], ··· 1627 1628 .exit_batch = ipgre_tap_exit_batch_net, 1628 1629 .id = &gre_tap_net_id, 1629 1630 .size = sizeof(struct ip_tunnel_net), 1630 - .async = true, 1631 1631 }; 1632 1632 1633 1633 static int __net_init erspan_init_net(struct net *net) ··· 1645 1647 .exit_batch = erspan_exit_batch_net, 1646 1648 .id = &erspan_net_id, 1647 1649 .size = sizeof(struct ip_tunnel_net), 1648 - .async = true, 1649 1650 }; 1650 1651 1651 1652 static int __init ipgre_init(void)
-1
net/ipv4/ip_vti.c
··· 454 454 .exit_batch = vti_exit_batch_net, 455 455 .id = &vti_net_id, 456 456 .size = sizeof(struct ip_tunnel_net), 457 - .async = true, 458 457 }; 459 458 460 459 static int vti_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
-1
net/ipv4/ipip.c
··· 669 669 .exit_batch = ipip_exit_batch_net, 670 670 .id = &ipip_net_id, 671 671 .size = sizeof(struct ip_tunnel_net), 672 - .async = true, 673 672 }; 674 673 675 674 static int __init ipip_init(void)
-1
net/ipv4/ipmr.c
··· 3009 3009 static struct pernet_operations ipmr_net_ops = { 3010 3010 .init = ipmr_net_init, 3011 3011 .exit = ipmr_net_exit, 3012 - .async = true, 3013 3012 }; 3014 3013 3015 3014 int __init ip_mr_init(void)
-1
net/ipv4/netfilter/arp_tables.c
··· 1635 1635 static struct pernet_operations arp_tables_net_ops = { 1636 1636 .init = arp_tables_net_init, 1637 1637 .exit = arp_tables_net_exit, 1638 - .async = true, 1639 1638 }; 1640 1639 1641 1640 static int __init arp_tables_init(void)
-1
net/ipv4/netfilter/arptable_filter.c
··· 65 65 66 66 static struct pernet_operations arptable_filter_net_ops = { 67 67 .exit = arptable_filter_net_exit, 68 - .async = true, 69 68 }; 70 69 71 70 static int __init arptable_filter_init(void)
-1
net/ipv4/netfilter/ip_tables.c
··· 1916 1916 static struct pernet_operations ip_tables_net_ops = { 1917 1917 .init = ip_tables_net_init, 1918 1918 .exit = ip_tables_net_exit, 1919 - .async = true, 1920 1919 }; 1921 1920 1922 1921 static int __init ip_tables_init(void)
-1
net/ipv4/netfilter/ipt_CLUSTERIP.c
··· 845 845 .exit = clusterip_net_exit, 846 846 .id = &clusterip_net_id, 847 847 .size = sizeof(struct clusterip_net), 848 - .async = true, 849 848 }; 850 849 851 850 static int __init clusterip_tg_init(void)
-1
net/ipv4/netfilter/iptable_filter.c
··· 87 87 static struct pernet_operations iptable_filter_net_ops = { 88 88 .init = iptable_filter_net_init, 89 89 .exit = iptable_filter_net_exit, 90 - .async = true, 91 90 }; 92 91 93 92 static int __init iptable_filter_init(void)
-1
net/ipv4/netfilter/iptable_mangle.c
··· 113 113 114 114 static struct pernet_operations iptable_mangle_net_ops = { 115 115 .exit = iptable_mangle_net_exit, 116 - .async = true, 117 116 }; 118 117 119 118 static int __init iptable_mangle_init(void)
-1
net/ipv4/netfilter/iptable_nat.c
··· 129 129 130 130 static struct pernet_operations iptable_nat_net_ops = { 131 131 .exit = iptable_nat_net_exit, 132 - .async = true, 133 132 }; 134 133 135 134 static int __init iptable_nat_init(void)
-1
net/ipv4/netfilter/iptable_raw.c
··· 76 76 77 77 static struct pernet_operations iptable_raw_net_ops = { 78 78 .exit = iptable_raw_net_exit, 79 - .async = true, 80 79 }; 81 80 82 81 static int __init iptable_raw_init(void)
-1
net/ipv4/netfilter/iptable_security.c
··· 76 76 77 77 static struct pernet_operations iptable_security_net_ops = { 78 78 .exit = iptable_security_net_exit, 79 - .async = true, 80 79 }; 81 80 82 81 static int __init iptable_security_init(void)
-1
net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
··· 399 399 .exit = ipv4_net_exit, 400 400 .id = &conntrack4_net_id, 401 401 .size = sizeof(struct conntrack4_net), 402 - .async = true, 403 402 }; 404 403 405 404 static int __init nf_conntrack_l3proto_ipv4_init(void)
-1
net/ipv4/netfilter/nf_defrag_ipv4.c
··· 118 118 119 119 static struct pernet_operations defrag4_net_ops = { 120 120 .exit = defrag4_net_exit, 121 - .async = true, 122 121 }; 123 122 124 123 static int __init nf_defrag_init(void)
-1
net/ipv4/netfilter/nf_log_arp.c
··· 122 122 static struct pernet_operations nf_log_arp_net_ops = { 123 123 .init = nf_log_arp_net_init, 124 124 .exit = nf_log_arp_net_exit, 125 - .async = true, 126 125 }; 127 126 128 127 static int __init nf_log_arp_init(void)
-1
net/ipv4/netfilter/nf_log_ipv4.c
··· 358 358 static struct pernet_operations nf_log_ipv4_net_ops = { 359 359 .init = nf_log_ipv4_net_init, 360 360 .exit = nf_log_ipv4_net_exit, 361 - .async = true, 362 361 }; 363 362 364 363 static int __init nf_log_ipv4_init(void)
-1
net/ipv4/ping.c
··· 1204 1204 static struct pernet_operations ping_v4_net_ops = { 1205 1205 .init = ping_v4_proc_init_net, 1206 1206 .exit = ping_v4_proc_exit_net, 1207 - .async = true, 1208 1207 }; 1209 1208 1210 1209 int __init ping_proc_init(void)
-1
net/ipv4/proc.c
··· 549 549 static __net_initdata struct pernet_operations ip_proc_ops = { 550 550 .init = ip_proc_init_net, 551 551 .exit = ip_proc_exit_net, 552 - .async = true, 553 552 }; 554 553 555 554 int __init ip_misc_proc_init(void)
-1
net/ipv4/raw.c
··· 1154 1154 static __net_initdata struct pernet_operations raw_net_ops = { 1155 1155 .init = raw_init_net, 1156 1156 .exit = raw_exit_net, 1157 - .async = true, 1158 1157 }; 1159 1158 1160 1159 int __init raw_proc_init(void)
-4
net/ipv4/route.c
··· 418 418 static struct pernet_operations ip_rt_proc_ops __net_initdata = { 419 419 .init = ip_rt_do_proc_init, 420 420 .exit = ip_rt_do_proc_exit, 421 - .async = true, 422 421 }; 423 422 424 423 static int __init ip_rt_proc_init(void) ··· 3016 3017 static __net_initdata struct pernet_operations sysctl_route_ops = { 3017 3018 .init = sysctl_route_net_init, 3018 3019 .exit = sysctl_route_net_exit, 3019 - .async = true, 3020 3020 }; 3021 3021 #endif 3022 3022 ··· 3029 3031 3030 3032 static __net_initdata struct pernet_operations rt_genid_ops = { 3031 3033 .init = rt_genid_init, 3032 - .async = true, 3033 3034 }; 3034 3035 3035 3036 static int __net_init ipv4_inetpeer_init(struct net *net) ··· 3054 3057 static __net_initdata struct pernet_operations ipv4_inetpeer_ops = { 3055 3058 .init = ipv4_inetpeer_init, 3056 3059 .exit = ipv4_inetpeer_exit, 3057 - .async = true, 3058 3060 }; 3059 3061 3060 3062 #ifdef CONFIG_IP_ROUTE_CLASSID
-1
net/ipv4/sysctl_net_ipv4.c
··· 1219 1219 static __net_initdata struct pernet_operations ipv4_sysctl_ops = { 1220 1220 .init = ipv4_sysctl_init_net, 1221 1221 .exit = ipv4_sysctl_exit_net, 1222 - .async = true, 1223 1222 }; 1224 1223 1225 1224 static __init int sysctl_ipv4_init(void)
-2
net/ipv4/tcp_ipv4.c
··· 2391 2391 static struct pernet_operations tcp4_net_ops = { 2392 2392 .init = tcp4_proc_init_net, 2393 2393 .exit = tcp4_proc_exit_net, 2394 - .async = true, 2395 2394 }; 2396 2395 2397 2396 int __init tcp4_proc_init(void) ··· 2577 2578 .init = tcp_sk_init, 2578 2579 .exit = tcp_sk_exit, 2579 2580 .exit_batch = tcp_sk_exit_batch, 2580 - .async = true, 2581 2581 }; 2582 2582 2583 2583 void __init tcp_v4_init(void)
-1
net/ipv4/tcp_metrics.c
··· 1024 1024 static __net_initdata struct pernet_operations tcp_net_metrics_ops = { 1025 1025 .init = tcp_net_metrics_init, 1026 1026 .exit_batch = tcp_net_metrics_exit_batch, 1027 - .async = true, 1028 1027 }; 1029 1028 1030 1029 void __init tcp_metrics_init(void)
-2
net/ipv4/udp.c
··· 2756 2756 static struct pernet_operations udp4_net_ops = { 2757 2757 .init = udp4_proc_init_net, 2758 2758 .exit = udp4_proc_exit_net, 2759 - .async = true, 2760 2759 }; 2761 2760 2762 2761 int __init udp4_proc_init(void) ··· 2842 2843 2843 2844 static struct pernet_operations __net_initdata udp_sysctl_ops = { 2844 2845 .init = udp_sysctl_init, 2845 - .async = true, 2846 2846 }; 2847 2847 2848 2848 void __init udp_init(void)
-1
net/ipv4/udplite.c
··· 104 104 static struct pernet_operations udplite4_net_ops = { 105 105 .init = udplite4_proc_init_net, 106 106 .exit = udplite4_proc_exit_net, 107 - .async = true, 108 107 }; 109 108 110 109 static __init int udplite4_proc_init(void)
-1
net/ipv4/xfrm4_policy.c
··· 367 367 static struct pernet_operations __net_initdata xfrm4_net_ops = { 368 368 .init = xfrm4_net_init, 369 369 .exit = xfrm4_net_exit, 370 - .async = true, 371 370 }; 372 371 373 372 static void __init xfrm4_policy_init(void)
-2
net/ipv6/addrconf.c
··· 4282 4282 static struct pernet_operations if6_proc_net_ops = { 4283 4283 .init = if6_proc_net_init, 4284 4284 .exit = if6_proc_net_exit, 4285 - .async = true, 4286 4285 }; 4287 4286 4288 4287 int __init if6_proc_init(void) ··· 6591 6592 static struct pernet_operations addrconf_ops = { 6592 6593 .init = addrconf_init_net, 6593 6594 .exit = addrconf_exit_net, 6594 - .async = true, 6595 6595 }; 6596 6596 6597 6597 static struct rtnl_af_ops inet6_ops __read_mostly = {
-1
net/ipv6/addrlabel.c
··· 344 344 static struct pernet_operations ipv6_addr_label_ops = { 345 345 .init = ip6addrlbl_net_init, 346 346 .exit = ip6addrlbl_net_exit, 347 - .async = true, 348 347 }; 349 348 350 349 int __init ipv6_addr_label_init(void)
-1
net/ipv6/af_inet6.c
··· 857 857 static struct pernet_operations inet6_net_ops = { 858 858 .init = inet6_net_init, 859 859 .exit = inet6_net_exit, 860 - .async = true, 861 860 }; 862 861 863 862 static const struct ipv6_stub ipv6_stub_impl = {
-1
net/ipv6/fib6_rules.c
··· 397 397 static struct pernet_operations fib6_rules_net_ops = { 398 398 .init = fib6_rules_net_init, 399 399 .exit = fib6_rules_net_exit, 400 - .async = true, 401 400 }; 402 401 403 402 int __init fib6_rules_init(void)
-1
net/ipv6/icmp.c
··· 998 998 static struct pernet_operations icmpv6_sk_ops = { 999 999 .init = icmpv6_sk_init, 1000 1000 .exit = icmpv6_sk_exit, 1001 - .async = true, 1002 1001 }; 1003 1002 1004 1003 int __init icmpv6_init(void)
-1
net/ipv6/ila/ila_xlat.c
··· 613 613 .exit = ila_exit_net, 614 614 .id = &ila_net_id, 615 615 .size = sizeof(struct ila_net), 616 - .async = true, 617 616 }; 618 617 619 618 static int ila_xlat_addr(struct sk_buff *skb, bool sir2ila)
-1
net/ipv6/ip6_fib.c
··· 2161 2161 static struct pernet_operations fib6_net_ops = { 2162 2162 .init = fib6_net_init, 2163 2163 .exit = fib6_net_exit, 2164 - .async = true, 2165 2164 }; 2166 2165 2167 2166 int __init fib6_init(void)
-1
net/ipv6/ip6_flowlabel.c
··· 873 873 static struct pernet_operations ip6_flowlabel_net_ops = { 874 874 .init = ip6_flowlabel_proc_init, 875 875 .exit = ip6_flowlabel_net_exit, 876 - .async = true, 877 876 }; 878 877 879 878 int ip6_flowlabel_init(void)
-1
net/ipv6/ip6_gre.c
··· 1528 1528 .exit_batch = ip6gre_exit_batch_net, 1529 1529 .id = &ip6gre_net_id, 1530 1530 .size = sizeof(struct ip6gre_net), 1531 - .async = true, 1532 1531 }; 1533 1532 1534 1533 static int ip6gre_tunnel_validate(struct nlattr *tb[], struct nlattr *data[],
-1
net/ipv6/ip6_tunnel.c
··· 2260 2260 .exit_batch = ip6_tnl_exit_batch_net, 2261 2261 .id = &ip6_tnl_net_id, 2262 2262 .size = sizeof(struct ip6_tnl_net), 2263 - .async = true, 2264 2263 }; 2265 2264 2266 2265 /**
-1
net/ipv6/ip6_vti.c
··· 1148 1148 .exit_batch = vti6_exit_batch_net, 1149 1149 .id = &vti6_net_id, 1150 1150 .size = sizeof(struct vti6_net), 1151 - .async = true, 1152 1151 }; 1153 1152 1154 1153 static struct xfrm6_protocol vti_esp6_protocol __read_mostly = {
-1
net/ipv6/ip6mr.c
··· 1348 1348 static struct pernet_operations ip6mr_net_ops = { 1349 1349 .init = ip6mr_net_init, 1350 1350 .exit = ip6mr_net_exit, 1351 - .async = true, 1352 1351 }; 1353 1352 1354 1353 int __init ip6_mr_init(void)
-1
net/ipv6/mcast.c
··· 2997 2997 static struct pernet_operations igmp6_net_ops = { 2998 2998 .init = igmp6_net_init, 2999 2999 .exit = igmp6_net_exit, 3000 - .async = true, 3001 3000 }; 3002 3001 3003 3002 int __init igmp6_init(void)
-1
net/ipv6/ndisc.c
··· 1883 1883 static struct pernet_operations ndisc_net_ops = { 1884 1884 .init = ndisc_net_init, 1885 1885 .exit = ndisc_net_exit, 1886 - .async = true, 1887 1886 }; 1888 1887 1889 1888 int __init ndisc_init(void)
-1
net/ipv6/netfilter/ip6_tables.c
··· 1928 1928 static struct pernet_operations ip6_tables_net_ops = { 1929 1929 .init = ip6_tables_net_init, 1930 1930 .exit = ip6_tables_net_exit, 1931 - .async = true, 1932 1931 }; 1933 1932 1934 1933 static int __init ip6_tables_init(void)
-1
net/ipv6/netfilter/ip6table_filter.c
··· 87 87 static struct pernet_operations ip6table_filter_net_ops = { 88 88 .init = ip6table_filter_net_init, 89 89 .exit = ip6table_filter_net_exit, 90 - .async = true, 91 90 }; 92 91 93 92 static int __init ip6table_filter_init(void)
-1
net/ipv6/netfilter/ip6table_mangle.c
··· 107 107 108 108 static struct pernet_operations ip6table_mangle_net_ops = { 109 109 .exit = ip6table_mangle_net_exit, 110 - .async = true, 111 110 }; 112 111 113 112 static int __init ip6table_mangle_init(void)
-1
net/ipv6/netfilter/ip6table_nat.c
··· 131 131 132 132 static struct pernet_operations ip6table_nat_net_ops = { 133 133 .exit = ip6table_nat_net_exit, 134 - .async = true, 135 134 }; 136 135 137 136 static int __init ip6table_nat_init(void)
-1
net/ipv6/netfilter/ip6table_raw.c
··· 75 75 76 76 static struct pernet_operations ip6table_raw_net_ops = { 77 77 .exit = ip6table_raw_net_exit, 78 - .async = true, 79 78 }; 80 79 81 80 static int __init ip6table_raw_init(void)
-1
net/ipv6/netfilter/ip6table_security.c
··· 74 74 75 75 static struct pernet_operations ip6table_security_net_ops = { 76 76 .exit = ip6table_security_net_exit, 77 - .async = true, 78 77 }; 79 78 80 79 static int __init ip6table_security_init(void)
-1
net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
··· 401 401 .exit = ipv6_net_exit, 402 402 .id = &conntrack6_net_id, 403 403 .size = sizeof(struct conntrack6_net), 404 - .async = true, 405 404 }; 406 405 407 406 static int __init nf_conntrack_l3proto_ipv6_init(void)
-1
net/ipv6/netfilter/nf_conntrack_reasm.c
··· 646 646 static struct pernet_operations nf_ct_net_ops = { 647 647 .init = nf_ct_net_init, 648 648 .exit = nf_ct_net_exit, 649 - .async = true, 650 649 }; 651 650 652 651 int nf_ct_frag6_init(void)
-1
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
··· 103 103 104 104 static struct pernet_operations defrag6_net_ops = { 105 105 .exit = defrag6_net_exit, 106 - .async = true, 107 106 }; 108 107 109 108 static int __init nf_defrag_init(void)
-1
net/ipv6/netfilter/nf_log_ipv6.c
··· 390 390 static struct pernet_operations nf_log_ipv6_net_ops = { 391 391 .init = nf_log_ipv6_net_init, 392 392 .exit = nf_log_ipv6_net_exit, 393 - .async = true, 394 393 }; 395 394 396 395 static int __init nf_log_ipv6_init(void)
-1
net/ipv6/ping.c
··· 240 240 static struct pernet_operations ping_v6_net_ops = { 241 241 .init = ping_v6_proc_init_net, 242 242 .exit = ping_v6_proc_exit_net, 243 - .async = true, 244 243 }; 245 244 #endif 246 245
-1
net/ipv6/proc.c
··· 343 343 static struct pernet_operations ipv6_proc_ops = { 344 344 .init = ipv6_proc_init_net, 345 345 .exit = ipv6_proc_exit_net, 346 - .async = true, 347 346 }; 348 347 349 348 int __init ipv6_misc_proc_init(void)
-1
net/ipv6/raw.c
··· 1332 1332 static struct pernet_operations raw6_net_ops = { 1333 1333 .init = raw6_init_net, 1334 1334 .exit = raw6_exit_net, 1335 - .async = true, 1336 1335 }; 1337 1336 1338 1337 int __init raw6_proc_init(void)
-1
net/ipv6/reassembly.c
··· 733 733 static struct pernet_operations ip6_frags_ops = { 734 734 .init = ipv6_frags_init_net, 735 735 .exit = ipv6_frags_exit_net, 736 - .async = true, 737 736 }; 738 737 739 738 int __init ipv6_frag_init(void)
-3
net/ipv6/route.c
··· 5083 5083 static struct pernet_operations ip6_route_net_ops = { 5084 5084 .init = ip6_route_net_init, 5085 5085 .exit = ip6_route_net_exit, 5086 - .async = true, 5087 5086 }; 5088 5087 5089 5088 static int __net_init ipv6_inetpeer_init(struct net *net) ··· 5108 5109 static struct pernet_operations ipv6_inetpeer_ops = { 5109 5110 .init = ipv6_inetpeer_init, 5110 5111 .exit = ipv6_inetpeer_exit, 5111 - .async = true, 5112 5112 }; 5113 5113 5114 5114 static struct pernet_operations ip6_route_net_late_ops = { 5115 5115 .init = ip6_route_net_init_late, 5116 5116 .exit = ip6_route_net_exit_late, 5117 - .async = true, 5118 5117 }; 5119 5118 5120 5119 static struct notifier_block ip6_route_dev_notifier = {
-1
net/ipv6/seg6.c
··· 395 395 static struct pernet_operations ip6_segments_ops = { 396 396 .init = seg6_net_init, 397 397 .exit = seg6_net_exit, 398 - .async = true, 399 398 }; 400 399 401 400 static const struct genl_ops seg6_genl_ops[] = {
-1
net/ipv6/sit.c
··· 1888 1888 .exit_batch = sit_exit_batch_net, 1889 1889 .id = &sit_net_id, 1890 1890 .size = sizeof(struct sit_net), 1891 - .async = true, 1892 1891 }; 1893 1892 1894 1893 static void __exit sit_cleanup(void)
-1
net/ipv6/sysctl_net_ipv6.c
··· 278 278 static struct pernet_operations ipv6_sysctl_net_ops = { 279 279 .init = ipv6_sysctl_net_init, 280 280 .exit = ipv6_sysctl_net_exit, 281 - .async = true, 282 281 }; 283 282 284 283 static struct ctl_table_header *ip6_header;
-1
net/ipv6/tcp_ipv6.c
··· 2007 2007 .init = tcpv6_net_init, 2008 2008 .exit = tcpv6_net_exit, 2009 2009 .exit_batch = tcpv6_net_exit_batch, 2010 - .async = true, 2011 2010 }; 2012 2011 2013 2012 int __init tcpv6_init(void)
-1
net/ipv6/udplite.c
··· 123 123 static struct pernet_operations udplite6_net_ops = { 124 124 .init = udplite6_proc_init_net, 125 125 .exit = udplite6_proc_exit_net, 126 - .async = true, 127 126 }; 128 127 129 128 int __init udplite6_proc_init(void)
-1
net/ipv6/xfrm6_policy.c
··· 400 400 static struct pernet_operations xfrm6_net_ops = { 401 401 .init = xfrm6_net_init, 402 402 .exit = xfrm6_net_exit, 403 - .async = true, 404 403 }; 405 404 406 405 int __init xfrm6_init(void)
-1
net/ipv6/xfrm6_tunnel.c
··· 353 353 .exit = xfrm6_tunnel_net_exit, 354 354 .id = &xfrm6_tunnel_net_id, 355 355 .size = sizeof(struct xfrm6_tunnel_net), 356 - .async = true, 357 356 }; 358 357 359 358 static int __init xfrm6_tunnel_init(void)
-1
net/kcm/kcmproc.c
··· 433 433 static struct pernet_operations kcm_net_ops = { 434 434 .init = kcm_proc_init_net, 435 435 .exit = kcm_proc_exit_net, 436 - .async = true, 437 436 }; 438 437 439 438 int __init kcm_proc_init(void)
-1
net/kcm/kcmsock.c
··· 2028 2028 .exit = kcm_exit_net, 2029 2029 .id = &kcm_net_id, 2030 2030 .size = sizeof(struct kcm_net), 2031 - .async = true, 2032 2031 }; 2033 2032 2034 2033 static int __init kcm_init(void)
-1
net/key/af_key.c
··· 3863 3863 .exit = pfkey_net_exit, 3864 3864 .id = &pfkey_net_id, 3865 3865 .size = sizeof(struct netns_pfkey), 3866 - .async = true, 3867 3866 }; 3868 3867 3869 3868 static void __exit ipsec_pfkey_exit(void)
-1
net/l2tp/l2tp_core.c
··· 1789 1789 .exit = l2tp_exit_net, 1790 1790 .id = &l2tp_net_id, 1791 1791 .size = sizeof(struct l2tp_net), 1792 - .async = true, 1793 1792 }; 1794 1793 1795 1794 static int __init l2tp_init(void)
-1
net/l2tp/l2tp_ppp.c
··· 1762 1762 .init = pppol2tp_init_net, 1763 1763 .exit = pppol2tp_exit_net, 1764 1764 .id = &pppol2tp_net_id, 1765 - .async = true, 1766 1765 }; 1767 1766 1768 1767 /*****************************************************************************
-1
net/mpls/af_mpls.c
··· 2488 2488 static struct pernet_operations mpls_net_ops = { 2489 2489 .init = mpls_net_init, 2490 2490 .exit = mpls_net_exit, 2491 - .async = true, 2492 2491 }; 2493 2492 2494 2493 static struct rtnl_af_ops mpls_af_ops __read_mostly = {
-1
net/netfilter/core.c
··· 629 629 static struct pernet_operations netfilter_net_ops = { 630 630 .init = netfilter_net_init, 631 631 .exit = netfilter_net_exit, 632 - .async = true, 633 632 }; 634 633 635 634 int __init netfilter_init(void)
-1
net/netfilter/ipset/ip_set_core.c
··· 2095 2095 .exit = ip_set_net_exit, 2096 2096 .id = &ip_set_net_id, 2097 2097 .size = sizeof(struct ip_set_net), 2098 - .async = true, 2099 2098 }; 2100 2099 2101 2100 static int __init
-2
net/netfilter/ipvs/ip_vs_core.c
··· 2289 2289 .exit = __ip_vs_cleanup, 2290 2290 .id = &ip_vs_net_id, 2291 2291 .size = sizeof(struct netns_ipvs), 2292 - .async = true, 2293 2292 }; 2294 2293 2295 2294 static struct pernet_operations ipvs_core_dev_ops = { 2296 2295 .exit = __ip_vs_dev_cleanup, 2297 - .async = true, 2298 2296 }; 2299 2297 2300 2298 /*
-1
net/netfilter/ipvs/ip_vs_ftp.c
··· 479 479 static struct pernet_operations ip_vs_ftp_ops = { 480 480 .init = __ip_vs_ftp_init, 481 481 .exit = __ip_vs_ftp_exit, 482 - .async = true, 483 482 }; 484 483 485 484 static int __init ip_vs_ftp_init(void)
-1
net/netfilter/ipvs/ip_vs_lblc.c
··· 604 604 static struct pernet_operations ip_vs_lblc_ops = { 605 605 .init = __ip_vs_lblc_init, 606 606 .exit = __ip_vs_lblc_exit, 607 - .async = true, 608 607 }; 609 608 610 609 static int __init ip_vs_lblc_init(void)
-1
net/netfilter/ipvs/ip_vs_lblcr.c
··· 789 789 static struct pernet_operations ip_vs_lblcr_ops = { 790 790 .init = __ip_vs_lblcr_init, 791 791 .exit = __ip_vs_lblcr_exit, 792 - .async = true, 793 792 }; 794 793 795 794 static int __init ip_vs_lblcr_init(void)
-1
net/netfilter/nf_conntrack_netlink.c
··· 3417 3417 static struct pernet_operations ctnetlink_net_ops = { 3418 3418 .init = ctnetlink_net_init, 3419 3419 .exit_batch = ctnetlink_net_exit_batch, 3420 - .async = true, 3421 3420 }; 3422 3421 3423 3422 static int __init ctnetlink_init(void)
-1
net/netfilter/nf_conntrack_proto_gre.c
··· 406 406 .exit = proto_gre_net_exit, 407 407 .id = &proto_gre_net_id, 408 408 .size = sizeof(struct netns_proto_gre), 409 - .async = true, 410 409 }; 411 410 412 411 static int __init nf_ct_proto_gre_init(void)
-1
net/netfilter/nf_conntrack_standalone.c
··· 705 705 static struct pernet_operations nf_conntrack_net_ops = { 706 706 .init = nf_conntrack_pernet_init, 707 707 .exit_batch = nf_conntrack_pernet_exit, 708 - .async = true, 709 708 }; 710 709 711 710 static int __init nf_conntrack_standalone_init(void)
-1
net/netfilter/nf_log.c
··· 577 577 static struct pernet_operations nf_log_net_ops = { 578 578 .init = nf_log_net_init, 579 579 .exit = nf_log_net_exit, 580 - .async = true, 581 580 }; 582 581 583 582 int __init netfilter_log_init(void)
-1
net/netfilter/nf_log_netdev.c
··· 47 47 static struct pernet_operations nf_log_netdev_net_ops = { 48 48 .init = nf_log_netdev_net_init, 49 49 .exit = nf_log_netdev_net_exit, 50 - .async = true, 51 50 }; 52 51 53 52 static int __init nf_log_netdev_init(void)
-1
net/netfilter/nf_synproxy_core.c
··· 398 398 .exit = synproxy_net_exit, 399 399 .id = &synproxy_net_id, 400 400 .size = sizeof(struct synproxy_net), 401 - .async = true, 402 401 }; 403 402 404 403 static int __init synproxy_core_init(void)
-1
net/netfilter/nf_tables_api.c
··· 6597 6597 static struct pernet_operations nf_tables_net_ops = { 6598 6598 .init = nf_tables_init_net, 6599 6599 .exit = nf_tables_exit_net, 6600 - .async = true, 6601 6600 }; 6602 6601 6603 6602 static int __init nf_tables_module_init(void)
-1
net/netfilter/nfnetlink.c
··· 566 566 static struct pernet_operations nfnetlink_net_ops = { 567 567 .init = nfnetlink_net_init, 568 568 .exit_batch = nfnetlink_net_exit_batch, 569 - .async = true, 570 569 }; 571 570 572 571 static int __init nfnetlink_init(void)
-1
net/netfilter/x_tables.c
··· 1789 1789 static struct pernet_operations xt_net_ops = { 1790 1790 .init = xt_net_init, 1791 1791 .exit = xt_net_exit, 1792 - .async = true, 1793 1792 }; 1794 1793 1795 1794 static int __init xt_init(void)
-1
net/netfilter/xt_hashlimit.c
··· 1349 1349 .exit = hashlimit_net_exit, 1350 1350 .id = &hashlimit_net_id, 1351 1351 .size = sizeof(struct hashlimit_net), 1352 - .async = true, 1353 1352 }; 1354 1353 1355 1354 static int __init hashlimit_mt_init(void)
-1
net/netfilter/xt_recent.c
··· 687 687 .exit = recent_net_exit, 688 688 .id = &recent_net_id, 689 689 .size = sizeof(struct recent_net), 690 - .async = true, 691 690 }; 692 691 693 692 static struct xt_match recent_mt_reg[] __read_mostly = {
-2
net/netlink/af_netlink.c
··· 253 253 .exit = netlink_tap_exit_net, 254 254 .id = &netlink_tap_net_id, 255 255 .size = sizeof(struct netlink_tap_net), 256 - .async = true, 257 256 }; 258 257 259 258 static bool netlink_filter_tap(const struct sk_buff *skb) ··· 2725 2726 static struct pernet_operations __net_initdata netlink_net_ops = { 2726 2727 .init = netlink_net_init, 2727 2728 .exit = netlink_net_exit, 2728 - .async = true, 2729 2729 }; 2730 2730 2731 2731 static inline u32 netlink_hash(const void *data, u32 len, u32 seed)
-1
net/netlink/genetlink.c
··· 1035 1035 static struct pernet_operations genl_pernet_ops = { 1036 1036 .init = genl_pernet_init, 1037 1037 .exit = genl_pernet_exit, 1038 - .async = true, 1039 1038 }; 1040 1039 1041 1040 static int __init genl_init(void)
-1
net/openvswitch/datapath.c
··· 2384 2384 .exit = ovs_exit_net, 2385 2385 .id = &ovs_net_id, 2386 2386 .size = sizeof(struct ovs_net), 2387 - .async = true, 2388 2387 }; 2389 2388 2390 2389 static int __init dp_init(void)
-1
net/packet/af_packet.c
··· 4557 4557 static struct pernet_operations packet_net_ops = { 4558 4558 .init = packet_net_init, 4559 4559 .exit = packet_net_exit, 4560 - .async = true, 4561 4560 }; 4562 4561 4563 4562
-1
net/phonet/pn_dev.c
··· 342 342 .exit = phonet_exit_net, 343 343 .id = &phonet_net_id, 344 344 .size = sizeof(struct phonet_net), 345 - .async = true, 346 345 }; 347 346 348 347 /* Initialize Phonet devices list */
-1
net/rds/tcp.c
··· 530 530 .exit = rds_tcp_exit_net, 531 531 .id = &rds_tcp_netid, 532 532 .size = sizeof(struct rds_tcp_net), 533 - .async = true, 534 533 }; 535 534 536 535 void *rds_tcp_listen_sock_def_readable(struct net *net)
-1
net/rxrpc/net_ns.c
··· 106 106 .exit = rxrpc_exit_net, 107 107 .id = &rxrpc_net_id, 108 108 .size = sizeof(struct rxrpc_net), 109 - .async = true, 110 109 };
-1
net/sched/act_api.c
··· 1533 1533 .exit = tcf_action_net_exit, 1534 1534 .id = &tcf_action_net_id, 1535 1535 .size = sizeof(struct tcf_action_net), 1536 - .async = true, 1537 1536 }; 1538 1537 1539 1538 static int __init tc_action_init(void)
-1
net/sched/act_bpf.c
··· 413 413 .exit_batch = bpf_exit_net, 414 414 .id = &bpf_net_id, 415 415 .size = sizeof(struct tc_action_net), 416 - .async = true, 417 416 }; 418 417 419 418 static int __init bpf_init_module(void)
-1
net/sched/act_connmark.c
··· 222 222 .exit_batch = connmark_exit_net, 223 223 .id = &connmark_net_id, 224 224 .size = sizeof(struct tc_action_net), 225 - .async = true, 226 225 }; 227 226 228 227 static int __init connmark_init_module(void)
-1
net/sched/act_csum.c
··· 678 678 .exit_batch = csum_exit_net, 679 679 .id = &csum_net_id, 680 680 .size = sizeof(struct tc_action_net), 681 - .async = true, 682 681 }; 683 682 684 683 MODULE_DESCRIPTION("Checksum updating actions");
-1
net/sched/act_gact.c
··· 261 261 .exit_batch = gact_exit_net, 262 262 .id = &gact_net_id, 263 263 .size = sizeof(struct tc_action_net), 264 - .async = true, 265 264 }; 266 265 267 266 MODULE_AUTHOR("Jamal Hadi Salim(2002-4)");
-1
net/sched/act_ife.c
··· 870 870 .exit_batch = ife_exit_net, 871 871 .id = &ife_net_id, 872 872 .size = sizeof(struct tc_action_net), 873 - .async = true, 874 873 }; 875 874 876 875 static int __init ife_init_module(void)
-2
net/sched/act_ipt.c
··· 352 352 .exit_batch = ipt_exit_net, 353 353 .id = &ipt_net_id, 354 354 .size = sizeof(struct tc_action_net), 355 - .async = true, 356 355 }; 357 356 358 357 static int tcf_xt_walker(struct net *net, struct sk_buff *skb, ··· 402 403 .exit_batch = xt_exit_net, 403 404 .id = &xt_net_id, 404 405 .size = sizeof(struct tc_action_net), 405 - .async = true, 406 406 }; 407 407 408 408 MODULE_AUTHOR("Jamal Hadi Salim(2002-13)");
-1
net/sched/act_mirred.c
··· 353 353 .exit_batch = mirred_exit_net, 354 354 .id = &mirred_net_id, 355 355 .size = sizeof(struct tc_action_net), 356 - .async = true, 357 356 }; 358 357 359 358 MODULE_AUTHOR("Jamal Hadi Salim(2002)");
-1
net/sched/act_nat.c
··· 323 323 .exit_batch = nat_exit_net, 324 324 .id = &nat_net_id, 325 325 .size = sizeof(struct tc_action_net), 326 - .async = true, 327 326 }; 328 327 329 328 MODULE_DESCRIPTION("Stateless NAT actions");
-1
net/sched/act_pedit.c
··· 465 465 .exit_batch = pedit_exit_net, 466 466 .id = &pedit_net_id, 467 467 .size = sizeof(struct tc_action_net), 468 - .async = true, 469 468 }; 470 469 471 470 MODULE_AUTHOR("Jamal Hadi Salim(2002-4)");
-1
net/sched/act_police.c
··· 347 347 .exit_batch = police_exit_net, 348 348 .id = &police_net_id, 349 349 .size = sizeof(struct tc_action_net), 350 - .async = true, 351 350 }; 352 351 353 352 static int __init police_init_module(void)
-1
net/sched/act_sample.c
··· 249 249 .exit_batch = sample_exit_net, 250 250 .id = &sample_net_id, 251 251 .size = sizeof(struct tc_action_net), 252 - .async = true, 253 252 }; 254 253 255 254 static int __init sample_init_module(void)
-1
net/sched/act_simple.c
··· 216 216 .exit_batch = simp_exit_net, 217 217 .id = &simp_net_id, 218 218 .size = sizeof(struct tc_action_net), 219 - .async = true, 220 219 }; 221 220 222 221 MODULE_AUTHOR("Jamal Hadi Salim(2005)");
-1
net/sched/act_skbedit.c
··· 253 253 .exit_batch = skbedit_exit_net, 254 254 .id = &skbedit_net_id, 255 255 .size = sizeof(struct tc_action_net), 256 - .async = true, 257 256 }; 258 257 259 258 MODULE_AUTHOR("Alexander Duyck, <alexander.h.duyck@intel.com>");
-1
net/sched/act_skbmod.c
··· 279 279 .exit_batch = skbmod_exit_net, 280 280 .id = &skbmod_net_id, 281 281 .size = sizeof(struct tc_action_net), 282 - .async = true, 283 282 }; 284 283 285 284 MODULE_AUTHOR("Jamal Hadi Salim, <jhs@mojatatu.com>");
-1
net/sched/act_tunnel_key.c
··· 339 339 .exit_batch = tunnel_key_exit_net, 340 340 .id = &tunnel_key_net_id, 341 341 .size = sizeof(struct tc_action_net), 342 - .async = true, 343 342 }; 344 343 345 344 static int __init tunnel_key_init_module(void)
-1
net/sched/act_vlan.c
··· 314 314 .exit_batch = vlan_exit_net, 315 315 .id = &vlan_net_id, 316 316 .size = sizeof(struct tc_action_net), 317 - .async = true, 318 317 }; 319 318 320 319 static int __init vlan_init_module(void)
-1
net/sched/cls_api.c
··· 1619 1619 .exit = tcf_net_exit, 1620 1620 .id = &tcf_net_id, 1621 1621 .size = sizeof(struct tcf_net), 1622 - .async = true, 1623 1622 }; 1624 1623 1625 1624 static int __init tc_filter_init(void)
-1
net/sched/sch_api.c
··· 2133 2133 static struct pernet_operations psched_net_ops = { 2134 2134 .init = psched_net_init, 2135 2135 .exit = psched_net_exit, 2136 - .async = true, 2137 2136 }; 2138 2137 2139 2138 static int __init pktsched_init(void)
-2
net/sctp/protocol.c
··· 1283 1283 static struct pernet_operations sctp_defaults_ops = { 1284 1284 .init = sctp_defaults_init, 1285 1285 .exit = sctp_defaults_exit, 1286 - .async = true, 1287 1286 }; 1288 1287 1289 1288 static int __net_init sctp_ctrlsock_init(struct net *net) ··· 1306 1307 static struct pernet_operations sctp_ctrlsock_ops = { 1307 1308 .init = sctp_ctrlsock_init, 1308 1309 .exit = sctp_ctrlsock_exit, 1309 - .async = true, 1310 1310 }; 1311 1311 1312 1312 /* Initialize the universe into something sensible. */
-1
net/sunrpc/auth_gss/auth_gss.c
··· 2063 2063 static struct pernet_operations rpcsec_gss_net_ops = { 2064 2064 .init = rpcsec_gss_init_net, 2065 2065 .exit = rpcsec_gss_exit_net, 2066 - .async = true, 2067 2066 }; 2068 2067 2069 2068 /*
-1
net/sunrpc/sunrpc_syms.c
··· 79 79 .exit = sunrpc_exit_net, 80 80 .id = &sunrpc_net_id, 81 81 .size = sizeof(struct sunrpc_net), 82 - .async = true, 83 82 }; 84 83 85 84 static int __init
-1
net/sysctl_net.c
··· 89 89 static struct pernet_operations sysctl_pernet_ops = { 90 90 .init = sysctl_net_init, 91 91 .exit = sysctl_net_exit, 92 - .async = true, 93 92 }; 94 93 95 94 static struct ctl_table_header *net_header;
-1
net/tipc/core.c
··· 109 109 .exit = tipc_exit_net, 110 110 .id = &tipc_net_id, 111 111 .size = sizeof(struct tipc_net), 112 - .async = true, 113 112 }; 114 113 115 114 static int __init tipc_init(void)
-1
net/unix/af_unix.c
··· 2913 2913 static struct pernet_operations unix_net_ops = { 2914 2914 .init = unix_net_init, 2915 2915 .exit = unix_net_exit, 2916 - .async = true, 2917 2916 }; 2918 2917 2919 2918 static int __init af_unix_init(void)
-1
net/wireless/core.c
··· 1340 1340 1341 1341 static struct pernet_operations cfg80211_pernet_ops = { 1342 1342 .exit = cfg80211_pernet_exit, 1343 - .async = true, 1344 1343 }; 1345 1344 1346 1345 static int __init cfg80211_init(void)
-1
net/wireless/wext-core.c
··· 390 390 static struct pernet_operations wext_pernet_ops = { 391 391 .init = wext_pernet_init, 392 392 .exit = wext_pernet_exit, 393 - .async = true, 394 393 }; 395 394 396 395 static int __init wireless_nlevent_init(void)
-1
net/xfrm/xfrm_policy.c
··· 2985 2985 static struct pernet_operations __net_initdata xfrm_net_ops = { 2986 2986 .init = xfrm_net_init, 2987 2987 .exit = xfrm_net_exit, 2988 - .async = true, 2989 2988 }; 2990 2989 2991 2990 void __init xfrm_init(void)
-1
net/xfrm/xfrm_user.c
··· 3253 3253 static struct pernet_operations xfrm_user_net_ops = { 3254 3254 .init = xfrm_user_net_init, 3255 3255 .exit_batch = xfrm_user_net_exit, 3256 - .async = true, 3257 3256 }; 3258 3257 3259 3258 static int __init xfrm_user_init(void)
-1
security/selinux/hooks.c
··· 6743 6743 static struct pernet_operations selinux_net_ops = { 6744 6744 .init = selinux_nf_register, 6745 6745 .exit = selinux_nf_unregister, 6746 - .async = true, 6747 6746 }; 6748 6747 6749 6748 static int __init selinux_nf_ip_init(void)
-1
security/smack/smack_netfilter.c
··· 89 89 static struct pernet_operations smack_net_ops = { 90 90 .init = smack_nf_register, 91 91 .exit = smack_nf_unregister, 92 - .async = true, 93 92 }; 94 93 95 94 static int __init smack_nf_ip_init(void)