提交 0895b08a 编写于 作者: D David S. Miller

neigh: Simply destroy handling wrt. hh_cache.

Now that hh_cache entries are embedded inside of neighbour
entries, their lifetimes and accesses are now synchronous
to that of the encompassing neighbour object.

Therefore we don't need to hook up the blackhole op to
hh_output on destroy.
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 05e3aa09
...@@ -689,8 +689,6 @@ static void neigh_destroy_rcu(struct rcu_head *head) ...@@ -689,8 +689,6 @@ static void neigh_destroy_rcu(struct rcu_head *head)
*/ */
void neigh_destroy(struct neighbour *neigh) void neigh_destroy(struct neighbour *neigh)
{ {
struct hh_cache *hh;
NEIGH_CACHE_STAT_INC(neigh->tbl, destroys); NEIGH_CACHE_STAT_INC(neigh->tbl, destroys);
if (!neigh->dead) { if (!neigh->dead) {
...@@ -703,13 +701,6 @@ void neigh_destroy(struct neighbour *neigh) ...@@ -703,13 +701,6 @@ void neigh_destroy(struct neighbour *neigh)
if (neigh_del_timer(neigh)) if (neigh_del_timer(neigh))
printk(KERN_WARNING "Impossible event.\n"); printk(KERN_WARNING "Impossible event.\n");
hh = &neigh->hh;
if (hh->hh_len) {
write_seqlock_bh(&hh->hh_lock);
hh->hh_output = neigh_blackhole;
write_sequnlock_bh(&hh->hh_lock);
}
skb_queue_purge(&neigh->arp_queue); skb_queue_purge(&neigh->arp_queue);
dev_put(neigh->dev); dev_put(neigh->dev);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册