From 19f01ef6ec1cd91404b03f6d7d3d5b1f6cfb6538 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Fri, 16 Mar 2012 02:00:34 +0000 Subject: [PATCH] --- yaml --- r: 288527 b: refs/heads/master c: a16a1647fa6b6783c2e91623e72e86f0c2adac5e h: refs/heads/master i: 288525: ebb74d67eb8ce2a1bc2c7ccfdfa0385e45fdc7ae 288523: 16fca8f67e0f8ad102f2914b4d0973dc81bfbe79 288519: 03fdffbd4d0007df4fdf632cb79457a4c343810a 288511: c86ec1a70f3d84b21dda5fcd5600fc576d6aeaeb v: v3 --- [refs] | 2 +- trunk/net/netfilter/nf_conntrack_netlink.c | 23 +++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/[refs] b/[refs] index f31e7b0367a5..44ea6eafd3ce 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c577923756b7fe9071f28a76b66b83b306d1d001 +refs/heads/master: a16a1647fa6b6783c2e91623e72e86f0c2adac5e diff --git a/trunk/net/netfilter/nf_conntrack_netlink.c b/trunk/net/netfilter/nf_conntrack_netlink.c index 10687692831e..b49da6c925b3 100644 --- a/trunk/net/netfilter/nf_conntrack_netlink.c +++ b/trunk/net/netfilter/nf_conntrack_netlink.c @@ -943,20 +943,21 @@ ctnetlink_del_conntrack(struct sock *ctnl, struct sk_buff *skb, } } - if (nf_conntrack_event_report(IPCT_DESTROY, ct, - NETLINK_CB(skb).pid, - nlmsg_report(nlh)) < 0) { + if (del_timer(&ct->timeout)) { + if (nf_conntrack_event_report(IPCT_DESTROY, ct, + NETLINK_CB(skb).pid, + nlmsg_report(nlh)) < 0) { + nf_ct_delete_from_lists(ct); + /* we failed to report the event, try later */ + nf_ct_insert_dying_list(ct); + nf_ct_put(ct); + return 0; + } + /* death_by_timeout would report the event again */ + set_bit(IPS_DYING_BIT, &ct->status); nf_ct_delete_from_lists(ct); - /* we failed to report the event, try later */ - nf_ct_insert_dying_list(ct); nf_ct_put(ct); - return 0; } - - /* death_by_timeout would report the event again */ - set_bit(IPS_DYING_BIT, &ct->status); - - nf_ct_kill(ct); nf_ct_put(ct); return 0;