diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-17 15:58:50 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-20 16:36:40 -0400 |
commit | d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5 (patch) | |
tree | c523a0448a1feca0ebfa57983ff9ff58a898b768 /net/ipv4/fib_semantics.c | |
parent | f2bb4bedf35d5167a073dcdddf16543f351ef3ae (diff) |
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.c | 2 |
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) | |||
173 | free_nh_exceptions(nexthop_nh); | 173 | free_nh_exceptions(nexthop_nh); |
174 | if (nexthop_nh->nh_rth_output) | 174 | if (nexthop_nh->nh_rth_output) |
175 | dst_release(&nexthop_nh->nh_rth_output->dst); | 175 | dst_release(&nexthop_nh->nh_rth_output->dst); |
176 | if (nexthop_nh->nh_rth_input) | ||
177 | dst_release(&nexthop_nh->nh_rth_input->dst); | ||
176 | } endfor_nexthops(fi); | 178 | } endfor_nexthops(fi); |
177 | 179 | ||
178 | release_net(fi->fib_net); | 180 | release_net(fi->fib_net); |