summaryrefslogtreecommitdiffstats
path: root/net/netfilter/nf_conntrack_helper.c
diff options
context:
space:
mode:
authorPatrick McHardy2007-07-08 07:35:56 +0200
committerDavid S. Miller2007-07-11 07:18:02 +0200
commitb560580a13b180bc1e3cad7ffbc93388cc39be5d (patch)
tree9ad6fd7a93c75ef4776239b4f43bde27737aa04b /net/netfilter/nf_conntrack_helper.c
parent[NETFILTER]: nf_conntrack_helper/nf_conntrack_netlink: convert to expectation... (diff)
downloadkernel-qcow2-linux-b560580a13b180bc1e3cad7ffbc93388cc39be5d.tar.gz
kernel-qcow2-linux-b560580a13b180bc1e3cad7ffbc93388cc39be5d.tar.xz
kernel-qcow2-linux-b560580a13b180bc1e3cad7ffbc93388cc39be5d.zip
[NETFILTER]: nf_conntrack_expect: maintain per conntrack expectation list
This patch brings back the per-conntrack expectation list that was removed around 2.6.10 to avoid walking all expectations on expectation eviction and conntrack destruction. As these were the last users of the global expectation list, this patch also kills that. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netfilter/nf_conntrack_helper.c')
-rw-r--r--net/netfilter/nf_conntrack_helper.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
index cc8ae7404ac4..66c209d7e09d 100644
--- a/net/netfilter/nf_conntrack_helper.c
+++ b/net/netfilter/nf_conntrack_helper.c
@@ -87,6 +87,19 @@ __nf_conntrack_helper_find_byname(const char *name)
}
EXPORT_SYMBOL_GPL(__nf_conntrack_helper_find_byname);
+struct nf_conn_help *nf_ct_helper_ext_add(struct nf_conn *ct, gfp_t gfp)
+{
+ struct nf_conn_help *help;
+
+ help = nf_ct_ext_add(ct, NF_CT_EXT_HELPER, gfp);
+ if (help)
+ INIT_HLIST_HEAD(&help->expectations);
+ else
+ pr_debug("failed to add helper extension area");
+ return help;
+}
+EXPORT_SYMBOL_GPL(nf_ct_helper_ext_add);
+
static inline int unhelp(struct nf_conntrack_tuple_hash *i,
const struct nf_conntrack_helper *me)
{