ipvs: Pass ipvs not net to start_sync_thread
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 21 Sep 2015 18:02:10 +0000 (13:02 -0500)
committerSimon Horman <horms@verge.net.au>
Thu, 24 Sep 2015 00:34:37 +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_ctl.c
net/netfilter/ipvs/ip_vs_sync.c

index 3c077e8a038c3b07f50f3f223c757aaace9088d6..dd7cd3a48fd44fb2de4fe2c444b0e9ca6642edf7 100644 (file)
@@ -1449,7 +1449,7 @@ static inline void ip_vs_dest_put_and_free(struct ip_vs_dest *dest)
 /* IPVS sync daemon data and function prototypes
  * (from ip_vs_sync.c)
  */
-int start_sync_thread(struct net *net, struct ipvs_sync_daemon_cfg *cfg,
+int start_sync_thread(struct netns_ipvs *ipvs, struct ipvs_sync_daemon_cfg *cfg,
                      int state);
 int stop_sync_thread(struct net *net, int state);
 void ip_vs_sync_conn(struct net *net, struct ip_vs_conn *cp, int pkts);
index 08d772c289d719e8afd45476aa45ba5cfb6eb0c2..b63b4c186040dd62cdd9ee22079ff1a54ee468bb 100644 (file)
@@ -2350,7 +2350,7 @@ do_ip_vs_set_ctl(struct sock *sk, int cmd, void __user *user, unsigned int len)
                        cfg.syncid = dm->syncid;
                        rtnl_lock();
                        mutex_lock(&ipvs->sync_mutex);
-                       ret = start_sync_thread(net, &cfg, dm->state);
+                       ret = start_sync_thread(ipvs, &cfg, dm->state);
                        mutex_unlock(&ipvs->sync_mutex);
                        rtnl_unlock();
                } else {
@@ -3432,7 +3432,7 @@ static int ip_vs_genl_new_daemon(struct netns_ipvs *ipvs, struct nlattr **attrs)
 
        rtnl_lock();
        mutex_lock(&ipvs->sync_mutex);
-       ret = start_sync_thread(ipvs->net, &c,
+       ret = start_sync_thread(ipvs, &c,
                                nla_get_u32(attrs[IPVS_DAEMON_ATTR_STATE]));
        mutex_unlock(&ipvs->sync_mutex);
        rtnl_unlock();
index d158e0713ab90760423f4f3fb08f6205f77abc78..90c455c0b42b62eb78fa48b83e443063ef778877 100644 (file)
@@ -1778,13 +1778,12 @@ static int sync_thread_backup(void *data)
 }
 
 
-int start_sync_thread(struct net *net, struct ipvs_sync_daemon_cfg *c,
+int start_sync_thread(struct netns_ipvs *ipvs, struct ipvs_sync_daemon_cfg *c,
                      int state)
 {
        struct ip_vs_sync_thread_data *tinfo;
        struct task_struct **array = NULL, *task;
        struct socket *sock;
-       struct netns_ipvs *ipvs = net_ipvs(net);
        struct net_device *dev;
        char *name;
        int (*threadfn)(void *data);
@@ -1811,7 +1810,7 @@ int start_sync_thread(struct net *net, struct ipvs_sync_daemon_cfg *c,
        if (!c->mcast_ttl)
                c->mcast_ttl = 1;
 
-       dev = __dev_get_by_name(net, c->mcast_ifn);
+       dev = __dev_get_by_name(ipvs->net, c->mcast_ifn);
        if (!dev) {
                pr_err("Unknown mcast interface: %s\n", c->mcast_ifn);
                return -ENODEV;
@@ -1873,9 +1872,9 @@ int start_sync_thread(struct net *net, struct ipvs_sync_daemon_cfg *c,
        tinfo = NULL;
        for (id = 0; id < count; id++) {
                if (state == IP_VS_STATE_MASTER)
-                       sock = make_send_sock(net, id);
+                       sock = make_send_sock(ipvs->net, id);
                else
-                       sock = make_receive_sock(net, id);
+                       sock = make_receive_sock(ipvs->net, id);
                if (IS_ERR(sock)) {
                        result = PTR_ERR(sock);
                        goto outtinfo;
@@ -1883,7 +1882,7 @@ int start_sync_thread(struct net *net, struct ipvs_sync_daemon_cfg *c,
                tinfo = kmalloc(sizeof(*tinfo), GFP_KERNEL);
                if (!tinfo)
                        goto outsocket;
-               tinfo->net = net;
+               tinfo->net = ipvs->net;
                tinfo->sock = sock;
                if (state == IP_VS_STATE_BACKUP) {
                        tinfo->buf = kmalloc(ipvs->bcfg.sync_maxlen,