diff options
author | David S. Miller <davem@davemloft.net> | 2012-07-17 12:58:50 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-20 13:36:40 -0700 |
commit | d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5 (patch) | |
tree | c523a0448a1feca0ebfa57983ff9ff58a898b768 /net/ipv4/fib_semantics.c | |
parent | f2bb4bedf35d5167a073dcdddf16543f351ef3ae (diff) | |
download | op-kernel-dev-d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5.zip op-kernel-dev-d2d68ba9fe8b38eb03124b3176a013bb8aa2b5e5.tar.gz |
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 83d0f42..e55171f 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); |