kill __ip_ct_expect_unlink_destroy
Subsystems (2)
PATCH 1/1 kill __ip_ct_expect_unlink_destroy
The following patch kills __ip_ct_expect_unlink_destroy and export unlink_expect as ip_ct_unlink_expect. As it was discussed [1], the function __ip_ct_expect_unlink_destroy is a bit confusing so better do the following sequence: ip_ct_destroy_expect and ip_conntrack_expect_put.
[1]https://lists.netfilter.org/pipermail/netfilter-devel/2005-August/020794.html
net/ipv4/netfilter/ip_conntrack_standalone.c +1 -1
@@ -998,7 +998,7 @@EXPORT_SYMBOL (ip_conntrack_unexpect_related);EXPORT_SYMBOL_GPL (ip_conntrack_expect_list);EXPORT_SYMBOL_GPL (__ip_conntrack_expect_find); -EXPORT_SYMBOL_GPL (__ip_ct_expect_unlink_destroy); +EXPORT_SYMBOL_GPL (ip_ct_unlink_expect);EXPORT_SYMBOL (ip_conntrack_tuple_taken);EXPORT_SYMBOL (ip_ct_gather_frags);
net/ipv4/netfilter/ip_conntrack_netlink.c +8 -4
@@ -1391,8 +1391,10 @@list_for_each_entry_safe (exp, tmp, &ip_conntrack_expect_list, list) {if (exp->master->helper == h - &&del_timer (&exp->timeout)) -__ip_ct_expect_unlink_destroy (exp); + &&del_timer (&exp->timeout)) { +ip_ct_unlink_expect (exp); +ip_conntrack_expect_put (exp); + } }write_unlock (&ip_conntrack_lock); }else {
@@ -1400,8 +1402,10 @@write_lock_bh (&ip_conntrack_lock);list_for_each_entry_safe (exp, tmp, &ip_conntrack_expect_list, list) { -if (del_timer (&exp->timeout)) -__ip_ct_expect_unlink_destroy (exp); +if (del_timer (&exp->timeout)) { +ip_ct_unlink_expect (exp); +ip_conntrack_expect_put (exp); + } }write_unlock_bh (&ip_conntrack_lock); }
net/ipv4/netfilter/ip_conntrack_core.c +7 -13
@@ -197,7 +197,7 @@/* ip_conntrack_expect helper functions */ -static void unlink_expect (struct ip_conntrack_expect *exp) +void ip_ct_unlink_expect (struct ip_conntrack_expect *exp) {ASSERT_WRITE_LOCK (&ip_conntrack_lock);IP_NF_ASSERT (!timer_pending (&exp->timeout));
@@ -207,18 +207,12 @@ip_conntrack_expect_put (exp); } -void __ip_ct_expect_unlink_destroy (struct ip_conntrack_expect *exp) -{ -unlink_expect (exp); -ip_conntrack_expect_put (exp); -} -static void expectation_timed_out (unsigned long ul_expect) {struct ip_conntrack_expect *exp = (void *)ul_expect;write_lock_bh (&ip_conntrack_lock); -unlink_expect (exp); +ip_ct_unlink_expect (exp);write_unlock_bh (&ip_conntrack_lock);ip_conntrack_expect_put (exp); }
@@ -266,7 +260,7 @@if (ip_ct_tuple_mask_cmp (tuple, &i->tuple, &i->mask) &&is_confirmed (i->master) &&del_timer (&i->timeout)) { -unlink_expect (i); +ip_ct_unlink_expect (i);return i; } }
@@ -284,7 +278,7 @@list_for_each_entry_safe (i, tmp, &ip_conntrack_expect_list, list) {if (i->master == ct &&del_timer (&i->timeout)) { -unlink_expect (i); +ip_ct_unlink_expect (i);ip_conntrack_expect_put (i); } }
@@ -925,7 +919,7 @@/* choose the the oldest expectation to evict */ list_for_each_entry_reverse (i, &ip_conntrack_expect_list, list) {if (expect_matches (i, exp) &&del_timer (&i->timeout)) { -unlink_expect (i); +ip_ct_unlink_expect (i);write_unlock_bh (&ip_conntrack_lock);ip_conntrack_expect_put (i);return ;
@@ -982,7 +976,7 @@list_for_each_entry_reverse (i, &ip_conntrack_expect_list, list) {if (i->master == master) {if (del_timer (&i->timeout)) { -unlink_expect (i); +ip_ct_unlink_expect (i);ip_conntrack_expect_put (i); }break ;
@@ -1099,7 +1093,7 @@/* Get rid of expectations */ list_for_each_entry_safe (exp, tmp, &ip_conntrack_expect_list, list) {if (exp->master->helper == me &&del_timer (&exp->timeout)) { -unlink_expect (exp); +ip_ct_unlink_expect (exp);ip_conntrack_expect_put (exp); } }
include/linux/netfilter_ipv4/ip_conntrack_core.h +1 -1
@@ -52,7 +52,7 @@return ret; } -extern void __ip_ct_expect_unlink_destroy (struct ip_conntrack_expect *exp); +extern void ip_ct_unlink_expect (struct ip_conntrack_expect *exp);extern struct list_head *ip_conntrack_hash;extern struct list_head ip_conntrack_expect_list;
Quoted 3 lines · Pablo Neira
The following patch kills
__ip_ct_expect_unlink_destroyand exportunlink_expectasip_ct_unlink_expect. As it was discussed [1], the function__ip_ct_expect_unlink_destroyis a bit confusing so better do the following sequence:ip_ct_destroy_expectandip_conntrack_expect_put.[1]https://lists.netfilter.org/pipermail/netfilter-devel/2005-August/020794.html
Also applied, thanks Pablo.