aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/route.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2007-11-11 00:28:34 -0500
committerDavid S. Miller <davem@davemloft.net>2007-11-11 00:28:34 -0500
commit03f49f345749abc08bc84b835433c94eea6e972b (patch)
tree8fad6fef152adaa473e2ab3a824cb04fe98b3bf1 /net/ipv4/route.c
parentb1667609cd9a98ce32559e06f36fca54c775a51f (diff)
[NET]: Make helper to get dst entry and "use" it
There are many places that get the dst entry, increase the __use counter and set the "lastuse" time stamp. Make a helper for this. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r--net/ipv4/route.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index c95b270ba350..45651834e1e2 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -851,9 +851,7 @@ restart:
851 */ 851 */
852 rcu_assign_pointer(rt_hash_table[hash].chain, rth); 852 rcu_assign_pointer(rt_hash_table[hash].chain, rth);
853 853
854 rth->u.dst.__use++; 854 dst_use(&rth->u.dst, now);
855 dst_hold(&rth->u.dst);
856 rth->u.dst.lastuse = now;
857 spin_unlock_bh(rt_hash_lock_addr(hash)); 855 spin_unlock_bh(rt_hash_lock_addr(hash));
858 856
859 rt_drop(rt); 857 rt_drop(rt);
@@ -1930,9 +1928,7 @@ int ip_route_input(struct sk_buff *skb, __be32 daddr, __be32 saddr,
1930 rth->fl.oif == 0 && 1928 rth->fl.oif == 0 &&
1931 rth->fl.mark == skb->mark && 1929 rth->fl.mark == skb->mark &&
1932 rth->fl.fl4_tos == tos) { 1930 rth->fl.fl4_tos == tos) {
1933 rth->u.dst.lastuse = jiffies; 1931 dst_use(&rth->u.dst, jiffies);
1934 dst_hold(&rth->u.dst);
1935 rth->u.dst.__use++;
1936 RT_CACHE_STAT_INC(in_hit); 1932 RT_CACHE_STAT_INC(in_hit);
1937 rcu_read_unlock(); 1933 rcu_read_unlock();
1938 skb->dst = (struct dst_entry*)rth; 1934 skb->dst = (struct dst_entry*)rth;
@@ -2326,9 +2322,7 @@ int __ip_route_output_key(struct rtable **rp, const struct flowi *flp)
2326 rth->fl.mark == flp->mark && 2322 rth->fl.mark == flp->mark &&
2327 !((rth->fl.fl4_tos ^ flp->fl4_tos) & 2323 !((rth->fl.fl4_tos ^ flp->fl4_tos) &
2328 (IPTOS_RT_MASK | RTO_ONLINK))) { 2324 (IPTOS_RT_MASK | RTO_ONLINK))) {
2329 rth->u.dst.lastuse = jiffies; 2325 dst_use(&rth->u.dst, jiffies);
2330 dst_hold(&rth->u.dst);
2331 rth->u.dst.__use++;
2332 RT_CACHE_STAT_INC(out_hit); 2326 RT_CACHE_STAT_INC(out_hit);
2333 rcu_read_unlock_bh(); 2327 rcu_read_unlock_bh();
2334 *rp = rth; 2328 *rp = rth;