Loading include/net/ip_vs.h +13 −21 Original line number Diff line number Diff line Loading @@ -836,8 +836,6 @@ struct netns_ipvs { int num_services; /* no of virtual services */ rwlock_t rs_lock; /* real services table */ /* semaphore for IPVS sockopts. And, [gs]etsockopt may sleep. */ struct lock_class_key ctl_key; /* ctl_mutex debuging */ /* Trash for destinations */ struct list_head dest_trash; /* Service counters */ Loading Loading @@ -1089,19 +1087,19 @@ ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp) /* * IPVS netns init & cleanup functions */ extern int __ip_vs_estimator_init(struct net *net); extern int __ip_vs_control_init(struct net *net); extern int __ip_vs_protocol_init(struct net *net); extern int __ip_vs_app_init(struct net *net); extern int __ip_vs_conn_init(struct net *net); extern int __ip_vs_sync_init(struct net *net); extern void __ip_vs_conn_cleanup(struct net *net); extern void __ip_vs_app_cleanup(struct net *net); extern void __ip_vs_protocol_cleanup(struct net *net); extern void __ip_vs_control_cleanup(struct net *net); extern void __ip_vs_estimator_cleanup(struct net *net); extern void __ip_vs_sync_cleanup(struct net *net); extern void __ip_vs_service_cleanup(struct net *net); extern int ip_vs_estimator_net_init(struct net *net); extern int ip_vs_control_net_init(struct net *net); extern int ip_vs_protocol_net_init(struct net *net); extern int ip_vs_app_net_init(struct net *net); extern int ip_vs_conn_net_init(struct net *net); extern int ip_vs_sync_net_init(struct net *net); extern void ip_vs_conn_net_cleanup(struct net *net); extern void ip_vs_app_net_cleanup(struct net *net); extern void ip_vs_protocol_net_cleanup(struct net *net); extern void ip_vs_control_net_cleanup(struct net *net); extern void ip_vs_estimator_net_cleanup(struct net *net); extern void ip_vs_sync_net_cleanup(struct net *net); extern void ip_vs_service_net_cleanup(struct net *net); /* * IPVS application functions Loading @@ -1119,8 +1117,6 @@ extern void ip_vs_app_inc_put(struct ip_vs_app *inc); extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff *skb); extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff *skb); extern int ip_vs_app_init(void); extern void ip_vs_app_cleanup(void); void ip_vs_bind_pe(struct ip_vs_service *svc, struct ip_vs_pe *pe); void ip_vs_unbind_pe(struct ip_vs_service *svc); Loading Loading @@ -1223,15 +1219,11 @@ extern int start_sync_thread(struct net *net, int state, char *mcast_ifn, __u8 syncid); extern int stop_sync_thread(struct net *net, int state); extern void ip_vs_sync_conn(struct net *net, struct ip_vs_conn *cp); extern int ip_vs_sync_init(void); extern void ip_vs_sync_cleanup(void); /* * IPVS rate estimator prototypes (from ip_vs_est.c) */ extern int ip_vs_estimator_init(void); extern void ip_vs_estimator_cleanup(void); extern void ip_vs_start_estimator(struct net *net, struct ip_vs_stats *stats); extern void ip_vs_stop_estimator(struct net *net, struct ip_vs_stats *stats); extern void ip_vs_zero_estimator(struct ip_vs_stats *stats); Loading net/netfilter/ipvs/ip_vs_app.c +2 −12 Original line number Diff line number Diff line Loading @@ -576,7 +576,7 @@ static const struct file_operations ip_vs_app_fops = { }; #endif int __net_init __ip_vs_app_init(struct net *net) int __net_init ip_vs_app_net_init(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -585,17 +585,7 @@ int __net_init __ip_vs_app_init(struct net *net) return 0; } void __net_exit __ip_vs_app_cleanup(struct net *net) void __net_exit ip_vs_app_net_cleanup(struct net *net) { proc_net_remove(net, "ip_vs_app"); } int __init ip_vs_app_init(void) { return 0; } void ip_vs_app_cleanup(void) { } net/netfilter/ipvs/ip_vs_conn.c +2 −2 Original line number Diff line number Diff line Loading @@ -1247,7 +1247,7 @@ static void ip_vs_conn_flush(struct net *net) /* * per netns init and exit */ int __net_init __ip_vs_conn_init(struct net *net) int __net_init ip_vs_conn_net_init(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -1258,7 +1258,7 @@ int __net_init __ip_vs_conn_init(struct net *net) return 0; } void __net_exit __ip_vs_conn_cleanup(struct net *net) void __net_exit ip_vs_conn_net_cleanup(struct net *net) { /* flush all the connection entries first */ ip_vs_conn_flush(net); Loading net/netfilter/ipvs/ip_vs_core.c +25 −46 Original line number Diff line number Diff line Loading @@ -1891,22 +1891,22 @@ static int __net_init __ip_vs_init(struct net *net) atomic_inc(&ipvs_netns_cnt); net->ipvs = ipvs; if (__ip_vs_estimator_init(net) < 0) if (ip_vs_estimator_net_init(net) < 0) goto estimator_fail; if (__ip_vs_control_init(net) < 0) if (ip_vs_control_net_init(net) < 0) goto control_fail; if (__ip_vs_protocol_init(net) < 0) if (ip_vs_protocol_net_init(net) < 0) goto protocol_fail; if (__ip_vs_app_init(net) < 0) if (ip_vs_app_net_init(net) < 0) goto app_fail; if (__ip_vs_conn_init(net) < 0) if (ip_vs_conn_net_init(net) < 0) goto conn_fail; if (__ip_vs_sync_init(net) < 0) if (ip_vs_sync_net_init(net) < 0) goto sync_fail; printk(KERN_INFO "IPVS: Creating netns size=%zu id=%d\n", Loading @@ -1917,27 +1917,27 @@ static int __net_init __ip_vs_init(struct net *net) */ sync_fail: __ip_vs_conn_cleanup(net); ip_vs_conn_net_cleanup(net); conn_fail: __ip_vs_app_cleanup(net); ip_vs_app_net_cleanup(net); app_fail: __ip_vs_protocol_cleanup(net); ip_vs_protocol_net_cleanup(net); protocol_fail: __ip_vs_control_cleanup(net); ip_vs_control_net_cleanup(net); control_fail: __ip_vs_estimator_cleanup(net); ip_vs_estimator_net_cleanup(net); estimator_fail: return -ENOMEM; } static void __net_exit __ip_vs_cleanup(struct net *net) { __ip_vs_service_cleanup(net); /* ip_vs_flush() with locks */ __ip_vs_conn_cleanup(net); __ip_vs_app_cleanup(net); __ip_vs_protocol_cleanup(net); __ip_vs_control_cleanup(net); __ip_vs_estimator_cleanup(net); ip_vs_service_net_cleanup(net); /* ip_vs_flush() with locks */ ip_vs_conn_net_cleanup(net); ip_vs_app_net_cleanup(net); ip_vs_protocol_net_cleanup(net); ip_vs_control_net_cleanup(net); ip_vs_estimator_net_cleanup(net); IP_VS_DBG(2, "ipvs netns %d released\n", net_ipvs(net)->gen); } Loading @@ -1945,7 +1945,7 @@ static void __net_exit __ip_vs_dev_cleanup(struct net *net) { EnterFunction(2); net_ipvs(net)->enable = 0; /* Disable packet reception */ __ip_vs_sync_cleanup(net); ip_vs_sync_net_cleanup(net); LeaveFunction(2); } Loading @@ -1967,36 +1967,23 @@ static int __init ip_vs_init(void) { int ret; ip_vs_estimator_init(); ret = ip_vs_control_init(); if (ret < 0) { pr_err("can't setup control.\n"); goto cleanup_estimator; goto exit; } ip_vs_protocol_init(); ret = ip_vs_app_init(); if (ret < 0) { pr_err("can't setup application helper.\n"); goto cleanup_protocol; } ret = ip_vs_conn_init(); if (ret < 0) { pr_err("can't setup connection table.\n"); goto cleanup_app; } ret = ip_vs_sync_init(); if (ret < 0) { pr_err("can't setup sync data.\n"); goto cleanup_conn; goto cleanup_protocol; } ret = register_pernet_subsys(&ipvs_core_ops); /* Alloc ip_vs struct */ if (ret < 0) goto cleanup_sync; goto cleanup_conn; ret = register_pernet_device(&ipvs_core_dev_ops); if (ret < 0) Loading @@ -2016,17 +2003,12 @@ static int __init ip_vs_init(void) unregister_pernet_device(&ipvs_core_dev_ops); cleanup_sub: unregister_pernet_subsys(&ipvs_core_ops); cleanup_sync: ip_vs_sync_cleanup(); cleanup_conn: ip_vs_conn_cleanup(); cleanup_app: ip_vs_app_cleanup(); cleanup_protocol: ip_vs_protocol_cleanup(); ip_vs_control_cleanup(); cleanup_estimator: ip_vs_estimator_cleanup(); exit: return ret; } Loading @@ -2035,12 +2017,9 @@ static void __exit ip_vs_cleanup(void) nf_unregister_hooks(ip_vs_ops, ARRAY_SIZE(ip_vs_ops)); unregister_pernet_device(&ipvs_core_dev_ops); unregister_pernet_subsys(&ipvs_core_ops); /* free ip_vs struct */ ip_vs_sync_cleanup(); ip_vs_conn_cleanup(); ip_vs_app_cleanup(); ip_vs_protocol_cleanup(); ip_vs_control_cleanup(); ip_vs_estimator_cleanup(); pr_info("ipvs unloaded.\n"); } Loading net/netfilter/ipvs/ip_vs_ctl.c +14 −14 Original line number Diff line number Diff line Loading @@ -1483,7 +1483,7 @@ static int ip_vs_flush(struct net *net) * Delete service by {netns} in the service table. * Called by __ip_vs_cleanup() */ void __ip_vs_service_cleanup(struct net *net) void ip_vs_service_net_cleanup(struct net *net) { EnterFunction(2); /* Check for "full" addressed entries */ Loading Loading @@ -1662,7 +1662,7 @@ proc_do_sync_mode(ctl_table *table, int write, /* * IPVS sysctl table (under the /proc/sys/net/ipv4/vs/) * Do not change order or insert new entries without * align with netns init in __ip_vs_control_init() * align with netns init in ip_vs_control_net_init() */ static struct ctl_table vs_vars[] = { Loading Loading @@ -3595,7 +3595,7 @@ static void ip_vs_genl_unregister(void) * per netns intit/exit func. */ #ifdef CONFIG_SYSCTL int __net_init __ip_vs_control_init_sysctl(struct net *net) int __net_init ip_vs_control_net_init_sysctl(struct net *net) { int idx; struct netns_ipvs *ipvs = net_ipvs(net); Loading Loading @@ -3654,7 +3654,7 @@ int __net_init __ip_vs_control_init_sysctl(struct net *net) return 0; } void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) void __net_init ip_vs_control_net_cleanup_sysctl(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -3665,8 +3665,8 @@ void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) #else int __net_init __ip_vs_control_init_sysctl(struct net *net) { return 0; } void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) { } int __net_init ip_vs_control_net_init_sysctl(struct net *net) { return 0; } void __net_init ip_vs_control_net_cleanup_sysctl(struct net *net) { } #endif Loading @@ -3674,7 +3674,7 @@ static struct notifier_block ip_vs_dst_notifier = { .notifier_call = ip_vs_dst_event, }; int __net_init __ip_vs_control_init(struct net *net) int __net_init ip_vs_control_net_init(struct net *net) { int idx; struct netns_ipvs *ipvs = net_ipvs(net); Loading Loading @@ -3702,7 +3702,7 @@ int __net_init __ip_vs_control_init(struct net *net) proc_net_fops_create(net, "ip_vs_stats_percpu", 0, &ip_vs_stats_percpu_fops); if (__ip_vs_control_init_sysctl(net)) if (ip_vs_control_net_init_sysctl(net)) goto err; return 0; Loading @@ -3712,13 +3712,13 @@ int __net_init __ip_vs_control_init(struct net *net) return -ENOMEM; } void __net_exit __ip_vs_control_cleanup(struct net *net) void __net_exit ip_vs_control_net_cleanup(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); ip_vs_trash_cleanup(net); ip_vs_stop_estimator(net, &ipvs->tot_stats); __ip_vs_control_cleanup_sysctl(net); ip_vs_control_net_cleanup_sysctl(net); proc_net_remove(net, "ip_vs_stats_percpu"); proc_net_remove(net, "ip_vs_stats"); proc_net_remove(net, "ip_vs"); Loading Loading
include/net/ip_vs.h +13 −21 Original line number Diff line number Diff line Loading @@ -836,8 +836,6 @@ struct netns_ipvs { int num_services; /* no of virtual services */ rwlock_t rs_lock; /* real services table */ /* semaphore for IPVS sockopts. And, [gs]etsockopt may sleep. */ struct lock_class_key ctl_key; /* ctl_mutex debuging */ /* Trash for destinations */ struct list_head dest_trash; /* Service counters */ Loading Loading @@ -1089,19 +1087,19 @@ ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp) /* * IPVS netns init & cleanup functions */ extern int __ip_vs_estimator_init(struct net *net); extern int __ip_vs_control_init(struct net *net); extern int __ip_vs_protocol_init(struct net *net); extern int __ip_vs_app_init(struct net *net); extern int __ip_vs_conn_init(struct net *net); extern int __ip_vs_sync_init(struct net *net); extern void __ip_vs_conn_cleanup(struct net *net); extern void __ip_vs_app_cleanup(struct net *net); extern void __ip_vs_protocol_cleanup(struct net *net); extern void __ip_vs_control_cleanup(struct net *net); extern void __ip_vs_estimator_cleanup(struct net *net); extern void __ip_vs_sync_cleanup(struct net *net); extern void __ip_vs_service_cleanup(struct net *net); extern int ip_vs_estimator_net_init(struct net *net); extern int ip_vs_control_net_init(struct net *net); extern int ip_vs_protocol_net_init(struct net *net); extern int ip_vs_app_net_init(struct net *net); extern int ip_vs_conn_net_init(struct net *net); extern int ip_vs_sync_net_init(struct net *net); extern void ip_vs_conn_net_cleanup(struct net *net); extern void ip_vs_app_net_cleanup(struct net *net); extern void ip_vs_protocol_net_cleanup(struct net *net); extern void ip_vs_control_net_cleanup(struct net *net); extern void ip_vs_estimator_net_cleanup(struct net *net); extern void ip_vs_sync_net_cleanup(struct net *net); extern void ip_vs_service_net_cleanup(struct net *net); /* * IPVS application functions Loading @@ -1119,8 +1117,6 @@ extern void ip_vs_app_inc_put(struct ip_vs_app *inc); extern int ip_vs_app_pkt_out(struct ip_vs_conn *, struct sk_buff *skb); extern int ip_vs_app_pkt_in(struct ip_vs_conn *, struct sk_buff *skb); extern int ip_vs_app_init(void); extern void ip_vs_app_cleanup(void); void ip_vs_bind_pe(struct ip_vs_service *svc, struct ip_vs_pe *pe); void ip_vs_unbind_pe(struct ip_vs_service *svc); Loading Loading @@ -1223,15 +1219,11 @@ extern int start_sync_thread(struct net *net, int state, char *mcast_ifn, __u8 syncid); extern int stop_sync_thread(struct net *net, int state); extern void ip_vs_sync_conn(struct net *net, struct ip_vs_conn *cp); extern int ip_vs_sync_init(void); extern void ip_vs_sync_cleanup(void); /* * IPVS rate estimator prototypes (from ip_vs_est.c) */ extern int ip_vs_estimator_init(void); extern void ip_vs_estimator_cleanup(void); extern void ip_vs_start_estimator(struct net *net, struct ip_vs_stats *stats); extern void ip_vs_stop_estimator(struct net *net, struct ip_vs_stats *stats); extern void ip_vs_zero_estimator(struct ip_vs_stats *stats); Loading
net/netfilter/ipvs/ip_vs_app.c +2 −12 Original line number Diff line number Diff line Loading @@ -576,7 +576,7 @@ static const struct file_operations ip_vs_app_fops = { }; #endif int __net_init __ip_vs_app_init(struct net *net) int __net_init ip_vs_app_net_init(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -585,17 +585,7 @@ int __net_init __ip_vs_app_init(struct net *net) return 0; } void __net_exit __ip_vs_app_cleanup(struct net *net) void __net_exit ip_vs_app_net_cleanup(struct net *net) { proc_net_remove(net, "ip_vs_app"); } int __init ip_vs_app_init(void) { return 0; } void ip_vs_app_cleanup(void) { }
net/netfilter/ipvs/ip_vs_conn.c +2 −2 Original line number Diff line number Diff line Loading @@ -1247,7 +1247,7 @@ static void ip_vs_conn_flush(struct net *net) /* * per netns init and exit */ int __net_init __ip_vs_conn_init(struct net *net) int __net_init ip_vs_conn_net_init(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -1258,7 +1258,7 @@ int __net_init __ip_vs_conn_init(struct net *net) return 0; } void __net_exit __ip_vs_conn_cleanup(struct net *net) void __net_exit ip_vs_conn_net_cleanup(struct net *net) { /* flush all the connection entries first */ ip_vs_conn_flush(net); Loading
net/netfilter/ipvs/ip_vs_core.c +25 −46 Original line number Diff line number Diff line Loading @@ -1891,22 +1891,22 @@ static int __net_init __ip_vs_init(struct net *net) atomic_inc(&ipvs_netns_cnt); net->ipvs = ipvs; if (__ip_vs_estimator_init(net) < 0) if (ip_vs_estimator_net_init(net) < 0) goto estimator_fail; if (__ip_vs_control_init(net) < 0) if (ip_vs_control_net_init(net) < 0) goto control_fail; if (__ip_vs_protocol_init(net) < 0) if (ip_vs_protocol_net_init(net) < 0) goto protocol_fail; if (__ip_vs_app_init(net) < 0) if (ip_vs_app_net_init(net) < 0) goto app_fail; if (__ip_vs_conn_init(net) < 0) if (ip_vs_conn_net_init(net) < 0) goto conn_fail; if (__ip_vs_sync_init(net) < 0) if (ip_vs_sync_net_init(net) < 0) goto sync_fail; printk(KERN_INFO "IPVS: Creating netns size=%zu id=%d\n", Loading @@ -1917,27 +1917,27 @@ static int __net_init __ip_vs_init(struct net *net) */ sync_fail: __ip_vs_conn_cleanup(net); ip_vs_conn_net_cleanup(net); conn_fail: __ip_vs_app_cleanup(net); ip_vs_app_net_cleanup(net); app_fail: __ip_vs_protocol_cleanup(net); ip_vs_protocol_net_cleanup(net); protocol_fail: __ip_vs_control_cleanup(net); ip_vs_control_net_cleanup(net); control_fail: __ip_vs_estimator_cleanup(net); ip_vs_estimator_net_cleanup(net); estimator_fail: return -ENOMEM; } static void __net_exit __ip_vs_cleanup(struct net *net) { __ip_vs_service_cleanup(net); /* ip_vs_flush() with locks */ __ip_vs_conn_cleanup(net); __ip_vs_app_cleanup(net); __ip_vs_protocol_cleanup(net); __ip_vs_control_cleanup(net); __ip_vs_estimator_cleanup(net); ip_vs_service_net_cleanup(net); /* ip_vs_flush() with locks */ ip_vs_conn_net_cleanup(net); ip_vs_app_net_cleanup(net); ip_vs_protocol_net_cleanup(net); ip_vs_control_net_cleanup(net); ip_vs_estimator_net_cleanup(net); IP_VS_DBG(2, "ipvs netns %d released\n", net_ipvs(net)->gen); } Loading @@ -1945,7 +1945,7 @@ static void __net_exit __ip_vs_dev_cleanup(struct net *net) { EnterFunction(2); net_ipvs(net)->enable = 0; /* Disable packet reception */ __ip_vs_sync_cleanup(net); ip_vs_sync_net_cleanup(net); LeaveFunction(2); } Loading @@ -1967,36 +1967,23 @@ static int __init ip_vs_init(void) { int ret; ip_vs_estimator_init(); ret = ip_vs_control_init(); if (ret < 0) { pr_err("can't setup control.\n"); goto cleanup_estimator; goto exit; } ip_vs_protocol_init(); ret = ip_vs_app_init(); if (ret < 0) { pr_err("can't setup application helper.\n"); goto cleanup_protocol; } ret = ip_vs_conn_init(); if (ret < 0) { pr_err("can't setup connection table.\n"); goto cleanup_app; } ret = ip_vs_sync_init(); if (ret < 0) { pr_err("can't setup sync data.\n"); goto cleanup_conn; goto cleanup_protocol; } ret = register_pernet_subsys(&ipvs_core_ops); /* Alloc ip_vs struct */ if (ret < 0) goto cleanup_sync; goto cleanup_conn; ret = register_pernet_device(&ipvs_core_dev_ops); if (ret < 0) Loading @@ -2016,17 +2003,12 @@ static int __init ip_vs_init(void) unregister_pernet_device(&ipvs_core_dev_ops); cleanup_sub: unregister_pernet_subsys(&ipvs_core_ops); cleanup_sync: ip_vs_sync_cleanup(); cleanup_conn: ip_vs_conn_cleanup(); cleanup_app: ip_vs_app_cleanup(); cleanup_protocol: ip_vs_protocol_cleanup(); ip_vs_control_cleanup(); cleanup_estimator: ip_vs_estimator_cleanup(); exit: return ret; } Loading @@ -2035,12 +2017,9 @@ static void __exit ip_vs_cleanup(void) nf_unregister_hooks(ip_vs_ops, ARRAY_SIZE(ip_vs_ops)); unregister_pernet_device(&ipvs_core_dev_ops); unregister_pernet_subsys(&ipvs_core_ops); /* free ip_vs struct */ ip_vs_sync_cleanup(); ip_vs_conn_cleanup(); ip_vs_app_cleanup(); ip_vs_protocol_cleanup(); ip_vs_control_cleanup(); ip_vs_estimator_cleanup(); pr_info("ipvs unloaded.\n"); } Loading
net/netfilter/ipvs/ip_vs_ctl.c +14 −14 Original line number Diff line number Diff line Loading @@ -1483,7 +1483,7 @@ static int ip_vs_flush(struct net *net) * Delete service by {netns} in the service table. * Called by __ip_vs_cleanup() */ void __ip_vs_service_cleanup(struct net *net) void ip_vs_service_net_cleanup(struct net *net) { EnterFunction(2); /* Check for "full" addressed entries */ Loading Loading @@ -1662,7 +1662,7 @@ proc_do_sync_mode(ctl_table *table, int write, /* * IPVS sysctl table (under the /proc/sys/net/ipv4/vs/) * Do not change order or insert new entries without * align with netns init in __ip_vs_control_init() * align with netns init in ip_vs_control_net_init() */ static struct ctl_table vs_vars[] = { Loading Loading @@ -3595,7 +3595,7 @@ static void ip_vs_genl_unregister(void) * per netns intit/exit func. */ #ifdef CONFIG_SYSCTL int __net_init __ip_vs_control_init_sysctl(struct net *net) int __net_init ip_vs_control_net_init_sysctl(struct net *net) { int idx; struct netns_ipvs *ipvs = net_ipvs(net); Loading Loading @@ -3654,7 +3654,7 @@ int __net_init __ip_vs_control_init_sysctl(struct net *net) return 0; } void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) void __net_init ip_vs_control_net_cleanup_sysctl(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); Loading @@ -3665,8 +3665,8 @@ void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) #else int __net_init __ip_vs_control_init_sysctl(struct net *net) { return 0; } void __net_init __ip_vs_control_cleanup_sysctl(struct net *net) { } int __net_init ip_vs_control_net_init_sysctl(struct net *net) { return 0; } void __net_init ip_vs_control_net_cleanup_sysctl(struct net *net) { } #endif Loading @@ -3674,7 +3674,7 @@ static struct notifier_block ip_vs_dst_notifier = { .notifier_call = ip_vs_dst_event, }; int __net_init __ip_vs_control_init(struct net *net) int __net_init ip_vs_control_net_init(struct net *net) { int idx; struct netns_ipvs *ipvs = net_ipvs(net); Loading Loading @@ -3702,7 +3702,7 @@ int __net_init __ip_vs_control_init(struct net *net) proc_net_fops_create(net, "ip_vs_stats_percpu", 0, &ip_vs_stats_percpu_fops); if (__ip_vs_control_init_sysctl(net)) if (ip_vs_control_net_init_sysctl(net)) goto err; return 0; Loading @@ -3712,13 +3712,13 @@ int __net_init __ip_vs_control_init(struct net *net) return -ENOMEM; } void __net_exit __ip_vs_control_cleanup(struct net *net) void __net_exit ip_vs_control_net_cleanup(struct net *net) { struct netns_ipvs *ipvs = net_ipvs(net); ip_vs_trash_cleanup(net); ip_vs_stop_estimator(net, &ipvs->tot_stats); __ip_vs_control_cleanup_sysctl(net); ip_vs_control_net_cleanup_sysctl(net); proc_net_remove(net, "ip_vs_stats_percpu"); proc_net_remove(net, "ip_vs_stats"); proc_net_remove(net, "ip_vs"); Loading