summaryrefslogtreecommitdiff
path: root/net/ipv4/fib_semantics.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-07-17 12:58:50 -0700
committerDavid S. Miller <davem@davemloft.net>2012-07-20 13:36:40 -0700
commitd2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5 (patch)
treec523a0448a1feca0ebfa57983ff9ff58a898b768 /net/ipv4/fib_semantics.c
parentf2bb4bedf35d5167a073dcdddf16543f351ef3ae (diff)
downloadlwn-d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5.tar.gz
lwn-d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5.zip
ipv4: Cache input routes in fib_info nexthops.
Caching input routes is slightly simpler than output routes, since we don't need to be concerned with nexthop exceptions. (locally destined, and routed packets, never trigger PMTU events or redirects that will be processed by us). However, we have to elide caching for the DIRECTSRC and non-zero itag cases. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/fib_semantics.c')
-rw-r--r--net/ipv4/fib_semantics.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 83d0f42b619a..e55171f184f9 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -173,6 +173,8 @@ static void free_fib_info_rcu(struct rcu_head *head)
free_nh_exceptions(nexthop_nh);
if (nexthop_nh->nh_rth_output)
dst_release(&nexthop_nh->nh_rth_output->dst);
+ if (nexthop_nh->nh_rth_input)
+ dst_release(&nexthop_nh->nh_rth_input->dst);
} endfor_nexthops(fi);
release_net(fi->fib_net);