|
@@ -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)) {
|