aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_conntrack_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/netfilter/nf_conntrack_core.c')
-rw-r--r--net/netfilter/nf_conntrack_core.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index 81e2aa4ca1f..7b48035826e 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -636,8 +636,12 @@ static noinline int early_drop(struct net *net, unsigned int hash)
636 636
637 if (del_timer(&ct->timeout)) { 637 if (del_timer(&ct->timeout)) {
638 death_by_timeout((unsigned long)ct); 638 death_by_timeout((unsigned long)ct);
639 dropped = 1; 639 /* Check if we indeed killed this entry. Reliable event
640 NF_CT_STAT_INC_ATOMIC(net, early_drop); 640 delivery may have inserted it into the dying list. */
641 if (test_bit(IPS_DYING_BIT, &ct->status)) {
642 dropped = 1;
643 NF_CT_STAT_INC_ATOMIC(net, early_drop);
644 }
641 } 645 }
642 nf_ct_put(ct); 646 nf_ct_put(ct);
643 return dropped; 647 return dropped;