]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
bridge: Cache net in br_nf_pre_routing_finish
authorEric W. Biederman <ebiederm@xmission.com>
Wed, 16 Sep 2015 01:04:14 +0000 (20:04 -0500)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Sep 2015 00:18:36 +0000 (17:18 -0700)
This is prep work for passing net to the netfilter hooks.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_netfilter_hooks.c

index e6910b71af6efa5808c5c4d11985e6b1f070a9b0..c1127908e23a60b5cbe06be90c69562bdfa87f80 100644 (file)
@@ -346,6 +346,7 @@ static int br_nf_pre_routing_finish(struct sock *sk, struct sk_buff *skb)
 {
        struct net_device *dev = skb->dev;
        struct iphdr *iph = ip_hdr(skb);
+       struct net *net = dev_net(dev);
        struct nf_bridge_info *nf_bridge = nf_bridge_info_get(skb);
        struct rtable *rt;
        int err;
@@ -371,7 +372,7 @@ static int br_nf_pre_routing_finish(struct sock *sk, struct sk_buff *skb)
                        if (err != -EHOSTUNREACH || !in_dev || IN_DEV_FORWARD(in_dev))
                                goto free_skb;
 
-                       rt = ip_route_output(dev_net(dev), iph->daddr, 0,
+                       rt = ip_route_output(net, iph->daddr, 0,
                                             RT_TOS(iph->tos), 0);
                        if (!IS_ERR(rt)) {
                                /* - Bridged-and-DNAT'ed traffic doesn't