aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-06-09 19:32:41 -0400
committerDavid S. Miller <davem@davemloft.net>2012-06-09 19:32:41 -0400
commit56a6b248eb345c1948ee60bf426de1ff7dd81509 (patch)
tree84748cfc069b11d6800b50e6ee71fa742a364c7b /net
parentc3426b47190d7c6785230c91a706fd42208b4120 (diff)
inet: Consolidate inetpeer_invalidate_tree() interfaces.
We only need one interface for this operation, since we always know which inetpeer root we want to flush. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/ipv4/inetpeer.c10
-rw-r--r--net/ipv4/route.c4
-rw-r--r--net/ipv6/route.c2
3 files changed, 4 insertions, 12 deletions
diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
index d0d72f89b279..9d89a381f0e1 100644
--- a/net/ipv4/inetpeer.c
+++ b/net/ipv4/inetpeer.c
@@ -564,7 +564,7 @@ static void inetpeer_inval_rcu(struct rcu_head *head)
564 schedule_delayed_work(&gc_work, gc_delay); 564 schedule_delayed_work(&gc_work, gc_delay);
565} 565}
566 566
567void __inetpeer_invalidate_tree(struct inet_peer_base *base) 567void inetpeer_invalidate_tree(struct inet_peer_base *base)
568{ 568{
569 struct inet_peer *old, *new, *prev; 569 struct inet_peer *old, *new, *prev;
570 570
@@ -585,12 +585,4 @@ void __inetpeer_invalidate_tree(struct inet_peer_base *base)
585out: 585out:
586 write_sequnlock_bh(&base->lock); 586 write_sequnlock_bh(&base->lock);
587} 587}
588EXPORT_SYMBOL(__inetpeer_invalidate_tree);
589
590void inetpeer_invalidate_tree(struct net *net, int family)
591{
592 struct inet_peer_base *base = family_to_base(net, family);
593
594 __inetpeer_invalidate_tree(base);
595}
596EXPORT_SYMBOL(inetpeer_invalidate_tree); 588EXPORT_SYMBOL(inetpeer_invalidate_tree);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 4cd35c3904d4..cf78343940de 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -935,7 +935,7 @@ static void rt_cache_invalidate(struct net *net)
935 935
936 get_random_bytes(&shuffle, sizeof(shuffle)); 936 get_random_bytes(&shuffle, sizeof(shuffle));
937 atomic_add(shuffle + 1U, &net->ipv4.rt_genid); 937 atomic_add(shuffle + 1U, &net->ipv4.rt_genid);
938 inetpeer_invalidate_tree(net, AF_INET); 938 inetpeer_invalidate_tree(net->ipv4.peers);
939} 939}
940 940
941/* 941/*
@@ -3401,7 +3401,7 @@ static void __net_exit ipv4_inetpeer_exit(struct net *net)
3401 struct inet_peer_base *bp = net->ipv4.peers; 3401 struct inet_peer_base *bp = net->ipv4.peers;
3402 3402
3403 net->ipv4.peers = NULL; 3403 net->ipv4.peers = NULL;
3404 __inetpeer_invalidate_tree(bp); 3404 inetpeer_invalidate_tree(bp);
3405 kfree(bp); 3405 kfree(bp);
3406} 3406}
3407 3407
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 3e1e4e0da096..7f346d7492d2 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -3012,7 +3012,7 @@ static void __net_exit ipv6_inetpeer_exit(struct net *net)
3012 struct inet_peer_base *bp = net->ipv6.peers; 3012 struct inet_peer_base *bp = net->ipv6.peers;
3013 3013
3014 net->ipv6.peers = NULL; 3014 net->ipv6.peers = NULL;
3015 __inetpeer_invalidate_tree(bp); 3015 inetpeer_invalidate_tree(bp);
3016 kfree(bp); 3016 kfree(bp);
3017} 3017}
3018 3018