These pernet_operations make pretty simple actions
like variable initialization on init, debug checks
on exit, and so on, and they obviously are able
to be executed in parallel with any others:
vrf_net_ops
lockd_net_ops
grace_net_ops
xfrm6_tunnel_net_ops
kcm_net_ops
tcf_net_ops
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
        .init = vrf_netns_init,
        .id   = &vrf_net_id,
        .size = sizeof(bool),
+       .async = true,
 };
 
 static int __init vrf_init_module(void)
 
        .exit = lockd_exit_net,
        .id = &lockd_net_id,
        .size = sizeof(struct lockd_net),
+       .async = true,
 };
 
 
 
        .exit = grace_exit_net,
        .id   = &grace_net_id,
        .size = sizeof(struct list_head),
+       .async = true,
 };
 
 static int __init
 
        .exit   = xfrm6_tunnel_net_exit,
        .id     = &xfrm6_tunnel_net_id,
        .size   = sizeof(struct xfrm6_tunnel_net),
+       .async  = true,
 };
 
 static int __init xfrm6_tunnel_init(void)
 
        .exit = kcm_exit_net,
        .id   = &kcm_net_id,
        .size = sizeof(struct kcm_net),
+       .async = true,
 };
 
 static int __init kcm_init(void)
 
        .exit = tcf_net_exit,
        .id   = &tcf_net_id,
        .size = sizeof(struct tcf_net),
+       .async = true,
 };
 
 static int __init tc_filter_init(void)