--- net/netfilter/nf_conntrack_core.c | 18 ++++++++++++------ net/netfilter/nf_conntrack_helper.c | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) Index: linux-2.6.23-rc6.quilt/net/netfilter/nf_conntrack_core.c =================================================================== --- linux-2.6.23-rc6.quilt.orig/net/netfilter/nf_conntrack_core.c 2007-09-14 10:57:01.000000000 +0200 +++ linux-2.6.23-rc6.quilt/net/netfilter/nf_conntrack_core.c 2007-09-14 18:21:26.000000000 +0200 @@ -171,7 +171,7 @@ clean_from_lists(struct nf_conn *ct) hlist_del(&ct->tuplehash[IP_CT_DIR_REPLY].hnode); /* Destroy all pending expectations */ - nf_ct_remove_expectations(ct); + /* nf_ct_remove_expectations(ct); */ } static void @@ -212,7 +212,7 @@ destroy_conntrack(struct nf_conntrack *n * except TFTP can create an expectation on the first packet, * before connection is in the list, so we need to clean here, * too. */ - nf_ct_remove_expectations(ct); + /* nf_ct_remove_expectations(ct); */ /* We overload first tuple to link into unconfirmed list. */ if (!nf_ct_is_confirmed(ct)) { @@ -546,13 +546,15 @@ init_conntrack(const struct nf_conntrack } spin_lock_bh(&nf_conntrack_lock); - exp = nf_ct_find_expectation(tuple); + /* exp = nf_ct_find_expectation(tuple); if (exp) { struct nf_conntrack_helper *helper; pr_debug("conntrack: expectation arrives ct=%p exp=%p\n", conntrack, exp); + */ /* Welcome, Mr. Bond. We've been expecting you... */ + /* __set_bit(IPS_EXPECTED_BIT, &conntrack->status); conntrack->master = exp->master; @@ -571,7 +573,7 @@ init_conntrack(const struct nf_conntrack #endif nf_conntrack_get(&conntrack->master->ct_general); NF_CT_STAT_INC(expect_new); - } else { + } else */ { struct nf_conntrack_helper *helper; helper = nf_ct_helper_find(&repl_tuple); @@ -589,11 +591,13 @@ init_conntrack(const struct nf_conntrack spin_unlock_bh(&nf_conntrack_lock); + /* if (exp) { if (exp->expectfn) exp->expectfn(conntrack, exp); nf_ct_expect_put(exp); } + */ return &conntrack->tuplehash[IP_CT_DIR_ORIGINAL]; } @@ -1002,7 +1006,7 @@ void nf_conntrack_cleanup(void) nf_conntrack_proto_fini(); nf_conntrack_helper_fini(); - nf_conntrack_expect_fini(); + /* nf_conntrack_expect_fini(); */ } struct hlist_head *nf_ct_alloc_hashtable(int *sizep, int *vmalloced) @@ -1128,9 +1132,11 @@ int __init nf_conntrack_init(void) if (ret < 0) goto err_free_conntrack_slab; + /* ret = nf_conntrack_expect_init(); if (ret < 0) goto out_fini_proto; + */ ret = nf_conntrack_helper_init(); if (ret < 0) @@ -1150,7 +1156,7 @@ int __init nf_conntrack_init(void) return ret; out_fini_expect: - nf_conntrack_expect_fini(); + /* nf_conntrack_expect_fini(); */ out_fini_proto: nf_conntrack_proto_fini(); err_free_conntrack_slab: Index: linux-2.6.23-rc6.quilt/net/netfilter/nf_conntrack_helper.c =================================================================== --- linux-2.6.23-rc6.quilt.orig/net/netfilter/nf_conntrack_helper.c 2007-09-14 11:03:30.000000000 +0200 +++ linux-2.6.23-rc6.quilt/net/netfilter/nf_conntrack_helper.c 2007-09-14 18:20:46.000000000 +0200 @@ -136,6 +136,7 @@ void nf_conntrack_helper_unregister(stru spin_lock_bh(&nf_conntrack_lock); /* Get rid of expectations */ + /* for (i = 0; i < nf_ct_expect_hsize; i++) { hlist_for_each_entry_safe(exp, n, next, &nf_ct_expect_hash[i], hnode) { @@ -147,7 +148,7 @@ void nf_conntrack_helper_unregister(stru } } } - + */ spin_unlock_bh(&nf_conntrack_lock); i = 0;