ipv4: Make output route lookup return rtable directly.
[deliverable/linux.git] / net / bridge / br_netfilter.c
index 4b5b66d07bba7d43a521d2f450386ceea1bf2ca9..45b57b173f70ff2ca1c6b37cabc4e0ef6681e13f 100644 (file)
@@ -428,14 +428,15 @@ static int br_nf_pre_routing_finish(struct sk_buff *skb)
                        if (err != -EHOSTUNREACH || !in_dev || IN_DEV_FORWARD(in_dev))
                                goto free_skb;
 
-                       if (!ip_route_output_key(dev_net(dev), &rt, &fl)) {
+                       rt = ip_route_output_key(dev_net(dev), &fl);
+                       if (!IS_ERR(rt)) {
                                /* - Bridged-and-DNAT'ed traffic doesn't
                                 *   require ip_forwarding. */
-                               if (((struct dst_entry *)rt)->dev == dev) {
-                                       skb_dst_set(skb, (struct dst_entry *)rt);
+                               if (rt->dst.dev == dev) {
+                                       skb_dst_set(skb, &rt->dst);
                                        goto bridged_dnat;
                                }
-                               dst_release((struct dst_entry *)rt);
+                               ip_rt_put(rt);
                        }
 free_skb:
                        kfree_skb(skb);
This page took 0.033501 seconds and 5 git commands to generate.