Commit 34927f41 authored by David S. Miller's avatar David S. Miller Committed by David S. Miller

[NET]: Remove INCOMPLETE checks from neigh_forced_gc().

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fb851470
...@@ -123,20 +123,12 @@ static int neigh_forced_gc(struct neigh_table *tbl) ...@@ -123,20 +123,12 @@ static int neigh_forced_gc(struct neigh_table *tbl)
np = &tbl->hash_buckets[i]; np = &tbl->hash_buckets[i];
while ((n = *np) != NULL) { while ((n = *np) != NULL) {
/* Neighbour record may be discarded if: /* Neighbour record may be discarded if:
- nobody refers to it. * - nobody refers to it.
- it is not permanent * - it is not permanent
- (NEW and probably wrong)
INCOMPLETE entries are kept at least for
n->parms->retrans_time, otherwise we could
flood network with resolution requests.
It is not clear, what is better table overflow
or flooding.
*/ */
write_lock(&n->lock); write_lock(&n->lock);
if (atomic_read(&n->refcnt) == 1 && if (atomic_read(&n->refcnt) == 1 &&
!(n->nud_state & NUD_PERMANENT) && !(n->nud_state & NUD_PERMANENT)) {
(n->nud_state != NUD_INCOMPLETE ||
time_after(jiffies, n->used + n->parms->retrans_time))) {
*np = n->next; *np = n->next;
n->dead = 1; n->dead = 1;
shrunk = 1; shrunk = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment