diff options
author | Hannes Frederic Sowa <hannes@stressinduktion.org> | 2015-03-25 17:07:44 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-25 14:07:04 -0400 |
commit | b6a7719aedd7e5c0f2df7641aa47386111682df4 (patch) | |
tree | f0374d5535a6670c1cb453cc6c0e15237e108376 /net/netfilter | |
parent | 8fa38a38ac37a0ca5366cd62ba4339c2bab49db9 (diff) | |
download | linux-stable-b6a7719aedd7e5c0f2df7641aa47386111682df4.tar.gz linux-stable-b6a7719aedd7e5c0f2df7641aa47386111682df4.tar.bz2 linux-stable-b6a7719aedd7e5c0f2df7641aa47386111682df4.zip |
ipv4: hash net ptr into fragmentation bucket selection
As namespaces are sometimes used with overlapping ip address ranges,
we should also use the namespace as input to the hash to select the ip
fragmentation counter bucket.
Cc: Eric Dumazet <edumazet@google.com>
Cc: Flavio Leitner <fbl@redhat.com>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/ipvs/ip_vs_xmit.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c index f35c15b0de6b..bf02932b7188 100644 --- a/net/netfilter/ipvs/ip_vs_xmit.c +++ b/net/netfilter/ipvs/ip_vs_xmit.c @@ -924,7 +924,8 @@ int ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, struct ip_vs_protocol *pp, struct ip_vs_iphdr *ipvsh) { - struct netns_ipvs *ipvs = net_ipvs(skb_net(skb)); + struct net *net = skb_net(skb); + struct netns_ipvs *ipvs = net_ipvs(net); struct rtable *rt; /* Route to the other host */ __be32 saddr; /* Source for tunnel */ struct net_device *tdev; /* Device to other host */ @@ -991,7 +992,7 @@ ip_vs_tunnel_xmit(struct sk_buff *skb, struct ip_vs_conn *cp, iph->daddr = cp->daddr.ip; iph->saddr = saddr; iph->ttl = ttl; - ip_select_ident(skb, NULL); + ip_select_ident(net, skb, NULL); /* Another hack: avoid icmp_send in ip_fragment */ skb->ignore_df = 1; |