ipvs: Pass ipvs not net into ip_vs_control_net_(init|cleanup)
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 21 Sep 2015 18:02:26 +0000 (13:02 -0500)
committerSimon Horman <horms@verge.net.au>
Thu, 24 Sep 2015 00:34:39 +0000 (09:34 +0900)
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Acked-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: Simon Horman <horms@verge.net.au>
include/net/ip_vs.h
net/netfilter/ipvs/ip_vs_core.c
net/netfilter/ipvs/ip_vs_ctl.c

index c88a3bf85f98037d384fb1c54bff6d8c284f946c..38c1fca0c1a7c50500755653b5c760dbc9d96266 100644 (file)
@@ -1324,7 +1324,7 @@ ip_vs_control_add(struct ip_vs_conn *cp, struct ip_vs_conn *ctl_cp)
 
 /* IPVS netns init & cleanup functions */
 int ip_vs_estimator_net_init(struct net *net);
-int ip_vs_control_net_init(struct net *net);
+int ip_vs_control_net_init(struct netns_ipvs *ipvs);
 int ip_vs_protocol_net_init(struct net *net);
 int ip_vs_app_net_init(struct net *net);
 int ip_vs_conn_net_init(struct net *net);
@@ -1332,7 +1332,7 @@ int ip_vs_sync_net_init(struct netns_ipvs *ipvs);
 void ip_vs_conn_net_cleanup(struct net *net);
 void ip_vs_app_net_cleanup(struct net *net);
 void ip_vs_protocol_net_cleanup(struct net *net);
-void ip_vs_control_net_cleanup(struct net *net);
+void ip_vs_control_net_cleanup(struct netns_ipvs *ipvs);
 void ip_vs_estimator_net_cleanup(struct net *net);
 void ip_vs_sync_net_cleanup(struct netns_ipvs *ipvs);
 void ip_vs_service_net_cleanup(struct netns_ipvs *ipvs);
index cae395fc6523d4d7f6d6d0d0afe8ec51e74d85a1..b5f451f20f522dfd7cbe7d2f98cc2669b1743df9 100644 (file)
@@ -2075,7 +2075,7 @@ static int __net_init __ip_vs_init(struct net *net)
        if (ip_vs_estimator_net_init(net) < 0)
                goto estimator_fail;
 
-       if (ip_vs_control_net_init(net) < 0)
+       if (ip_vs_control_net_init(ipvs) < 0)
                goto control_fail;
 
        if (ip_vs_protocol_net_init(net) < 0)
@@ -2104,7 +2104,7 @@ conn_fail:
 app_fail:
        ip_vs_protocol_net_cleanup(net);
 protocol_fail:
-       ip_vs_control_net_cleanup(net);
+       ip_vs_control_net_cleanup(ipvs);
 control_fail:
        ip_vs_estimator_net_cleanup(net);
 estimator_fail:
@@ -2120,7 +2120,7 @@ static void __net_exit __ip_vs_cleanup(struct net *net)
        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_control_net_cleanup(ipvs);
        ip_vs_estimator_net_cleanup(net);
        IP_VS_DBG(2, "ipvs netns %d released\n", ipvs->gen);
        net->ipvs = NULL;
index f0d72d6375e712815ec74ddee8d48c97dcce0f56..b7a0bd27408588a65cdc1514996e96be8b190c06 100644 (file)
@@ -3950,10 +3950,10 @@ static struct notifier_block ip_vs_dst_notifier = {
        .notifier_call = ip_vs_dst_event,
 };
 
-int __net_init ip_vs_control_net_init(struct net *net)
+int __net_init ip_vs_control_net_init(struct netns_ipvs *ipvs)
 {
+       struct net *net = ipvs->net;
        int i, idx;
-       struct netns_ipvs *ipvs = net_ipvs(net);
 
        /* Initialize rs_table */
        for (idx = 0; idx < IP_VS_RTAB_SIZE; idx++)
@@ -3994,9 +3994,9 @@ err:
        return -ENOMEM;
 }
 
-void __net_exit ip_vs_control_net_cleanup(struct net *net)
+void __net_exit ip_vs_control_net_cleanup(struct netns_ipvs *ipvs)
 {
-       struct netns_ipvs *ipvs = net_ipvs(net);
+       struct net *net = ipvs->net;
 
        ip_vs_trash_cleanup(ipvs);
        ip_vs_control_net_cleanup_sysctl(ipvs);