summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2015-09-15 20:03:55 -0500
committerDavid S. Miller <davem@davemloft.net>2015-09-17 17:18:33 -0700
commitf8e1ac7912700914e4d6d129d38ecbcff8e4f4c4 (patch)
treef30fca81782842aa515b15f51fdbb09f79a746f6
parentfcad0ac2da05d5ed443acee7abd69e24e69037ca (diff)
downloadlinux-stable-f8e1ac7912700914e4d6d129d38ecbcff8e4f4c4.tar.gz
linux-stable-f8e1ac7912700914e4d6d129d38ecbcff8e4f4c4.tar.bz2
linux-stable-f8e1ac7912700914e4d6d129d38ecbcff8e4f4c4.zip
ipv4: Compute net once in ip_forward_finish
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/ip_forward.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/net/ipv4/ip_forward.c b/net/ipv4/ip_forward.c
index ba2f66b3b3f6..95235c813f18 100644
--- a/net/ipv4/ip_forward.c
+++ b/net/ipv4/ip_forward.c
@@ -63,10 +63,11 @@ static bool ip_exceeds_mtu(const struct sk_buff *skb, unsigned int mtu)
static int ip_forward_finish(struct sock *sk, struct sk_buff *skb)
{
+ struct net *net = dev_net(skb_dst(skb)->dev);
struct ip_options *opt = &(IPCB(skb)->opt);
- IP_INC_STATS_BH(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTFORWDATAGRAMS);
- IP_ADD_STATS_BH(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTOCTETS, skb->len);
+ IP_INC_STATS_BH(net, IPSTATS_MIB_OUTFORWDATAGRAMS);
+ IP_ADD_STATS_BH(net, IPSTATS_MIB_OUTOCTETS, skb->len);
if (unlikely(opt->optlen))
ip_forward_options(skb);