ipvs: Simplify ipvs and net access in ip_vs_leave
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 21 Sep 2015 18:02:50 +0000 (13:02 -0500)
committerSimon Horman <horms@verge.net.au>
Thu, 24 Sep 2015 00:34:42 +0000 (09:34 +0900)
Stop using the hack skb_net(skb) to compute the network namespace.

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>
net/netfilter/ipvs/ip_vs_core.c

index 7e9ee1dece19f6b01c86da6720579c0829a49499..15661691bf7d2e791a86ca08879121c4f4dd5f0d 100644 (file)
@@ -568,21 +568,17 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
                struct ip_vs_proto_data *pd, struct ip_vs_iphdr *iph)
 {
        __be16 _ports[2], *pptr, dport;
-       struct net *net;
-       struct netns_ipvs *ipvs;
+       struct netns_ipvs *ipvs = svc->ipvs;
+       struct net *net = ipvs->net;
 
        pptr = frag_safe_skb_hp(skb, iph->len, sizeof(_ports), _ports, iph);
        if (!pptr)
                return NF_DROP;
        dport = likely(!ip_vs_iph_inverse(iph)) ? pptr[1] : pptr[0];
 
-       net = skb_net(skb);
-
-
        /* if it is fwmark-based service, the cache_bypass sysctl is up
           and the destination is a non-local unicast, then create
           a cache_bypass connection entry */
-       ipvs = net_ipvs(net);
        if (sysctl_cache_bypass(ipvs) && svc->fwmark &&
            !(iph->hdr_flags & (IP_VS_HDR_INVERSE | IP_VS_HDR_ICMP)) &&
            ip_vs_addr_is_unicast(net, svc->af, &iph->daddr)) {