Skip to content

Commit

Permalink
[NETFILTER]: nf_conntrack_expect: avoid useless list walking
Browse files Browse the repository at this point in the history
Don't walk the list when unexpecting an expectation, we already
have a reference and the timer check is enough to guarantee
that it still is on the list.

This comment suggests that it was copied there by mistake from
expectation eviction:

/* choose the oldest expectation to evict */

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Patrick McHardy authored and David S. Miller committed Jul 11, 2007
1 parent d4156e8 commit 4e1d4e6
Showing 1 changed file with 3 additions and 10 deletions.
13 changes: 3 additions & 10 deletions net/netfilter/nf_conntrack_expect.c
Original file line number Diff line number Diff line change
Expand Up @@ -165,17 +165,10 @@ static inline int expect_matches(const struct nf_conntrack_expect *a,
/* Generally a bad idea to call this: could have matched already. */
void nf_ct_unexpect_related(struct nf_conntrack_expect *exp)
{
struct nf_conntrack_expect *i;

write_lock_bh(&nf_conntrack_lock);
/* choose the oldest expectation to evict */
list_for_each_entry_reverse(i, &nf_ct_expect_list, list) {
if (expect_matches(i, exp) && del_timer(&i->timeout)) {
nf_ct_unlink_expect(i);
write_unlock_bh(&nf_conntrack_lock);
nf_ct_expect_put(i);
return;
}
if (del_timer(&exp->timeout)) {
nf_ct_unlink_expect(exp);
nf_ct_expect_put(exp);
}
write_unlock_bh(&nf_conntrack_lock);
}
Expand Down

0 comments on commit 4e1d4e6

Please sign in to comment.