diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-14 23:23:54 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-14 23:23:54 -0400 |
commit | 2aec609fb45e84d65bc8eabc7b650bbecb1cc179 (patch) | |
tree | eb3e8a79604113392d0ee74b19dbc1dfce579c11 /net/netfilter | |
parent | 4c8894980010536915c4f5513ee180e3614aeca9 (diff) | |
parent | 9076689ab07974a6f5d230fc241448f7a77e9078 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
net/netfilter/nf_conntrack_proto_tcp.c
Diffstat (limited to 'net/netfilter')
-rw-r--r-- | net/netfilter/nf_conntrack_proto_tcp.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/net/netfilter/nf_conntrack_proto_tcp.c b/net/netfilter/nf_conntrack_proto_tcp.c index 740acd6bc7d9..420a10d8eb1e 100644 --- a/net/netfilter/nf_conntrack_proto_tcp.c +++ b/net/netfilter/nf_conntrack_proto_tcp.c | |||
@@ -844,8 +844,14 @@ static int tcp_packet(struct nf_conn *ct, | |||
844 | /* Attempt to reopen a closed/aborted connection. | 844 | /* Attempt to reopen a closed/aborted connection. |
845 | * Delete this connection and look up again. */ | 845 | * Delete this connection and look up again. */ |
846 | write_unlock_bh(&tcp_lock); | 846 | write_unlock_bh(&tcp_lock); |
847 | nf_ct_kill(ct); | 847 | |
848 | return -NF_REPEAT; | 848 | /* Only repeat if we can actually remove the timer. |
849 | * Destruction may already be in progress in process | ||
850 | * context and we must give it a chance to terminate. | ||
851 | */ | ||
852 | if (nf_ct_kill(ct)) | ||
853 | return -NF_REPEAT; | ||
854 | return -NF_DROP; | ||
849 | } | 855 | } |
850 | /* Fall through */ | 856 | /* Fall through */ |
851 | case TCP_CONNTRACK_IGNORE: | 857 | case TCP_CONNTRACK_IGNORE: |