aboutsummaryrefslogtreecommitdiffstats
path: root/net/netfilter
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-03-09 17:34:20 -0500
committerDavid S. Miller <davem@davemloft.net>2012-03-09 17:34:20 -0500
commitb2d3298e0916fa059712691c85a0e97becc4ab9f (patch)
treec7d5ea46a9dbf9cebdb122df4aaf0beda6e7621e /net/netfilter
parent1a0bdadb4e36abac63b0a9787f372aac30c11a9e (diff)
parenta7f4255f906f60f72e00aad2fb000939449ff32e (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/netfilter')
-rw-r--r--net/netfilter/nf_conntrack_core.c8
-rw-r--r--net/netfilter/nf_conntrack_netlink.c3
2 files changed, 6 insertions, 5 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;
diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
index c1ea64c6c70..2124977ac31 100644
--- a/net/netfilter/nf_conntrack_netlink.c
+++ b/net/netfilter/nf_conntrack_netlink.c
@@ -1084,16 +1084,13 @@ ctnetlink_parse_nat_setup(struct nf_conn *ct,
1084 if (!parse_nat_setup) { 1084 if (!parse_nat_setup) {
1085#ifdef CONFIG_MODULES 1085#ifdef CONFIG_MODULES
1086 rcu_read_unlock(); 1086 rcu_read_unlock();
1087 spin_unlock_bh(&nf_conntrack_lock);
1088 nfnl_unlock(); 1087 nfnl_unlock();
1089 if (request_module("nf-nat-ipv4") < 0) { 1088 if (request_module("nf-nat-ipv4") < 0) {
1090 nfnl_lock(); 1089 nfnl_lock();
1091 spin_lock_bh(&nf_conntrack_lock);
1092 rcu_read_lock(); 1090 rcu_read_lock();
1093 return -EOPNOTSUPP; 1091 return -EOPNOTSUPP;
1094 } 1092 }
1095 nfnl_lock(); 1093 nfnl_lock();
1096 spin_lock_bh(&nf_conntrack_lock);
1097 rcu_read_lock(); 1094 rcu_read_lock();
1098 if (nfnetlink_parse_nat_setup_hook) 1095 if (nfnetlink_parse_nat_setup_hook)
1099 return -EAGAIN; 1096 return -EAGAIN;