Hello,
On Wed, 3 Aug 2016, Florian Westphal wrote:
> Once timer is removed from nf_conn struct we cannot open-code
> the removal sequence like this anymore.
>
> Signed-off-by: Florian Westphal <fw@xxxxxxxxx>
> ---
> ipvs maintainers:
>
> Alternatively I can do a 1:1 replacement of the del_timer() with a
> test_and_set_bit().
>
> Please let me know if you would prefer this,
>
> diff --git a/net/netfilter/ipvs/ip_vs_nfct.c b/net/netfilter/ipvs/ip_vs_nfct.c
> index f04fd8d..69ce16e 100644
> --- a/net/netfilter/ipvs/ip_vs_nfct.c
> +++ b/net/netfilter/ipvs/ip_vs_nfct.c
> @@ -281,18 +281,7 @@ void ip_vs_conn_drop_conntrack(struct ip_vs_conn *cp)
> h = nf_conntrack_find_get(cp->ipvs->net, &nf_ct_zone_dflt, &tuple);
> if (h) {
> ct = nf_ct_tuplehash_to_ctrack(h);
> - /* Show what happens instead of calling nf_ct_kill() */
> - if (del_timer(&ct->timeout)) {
May be it would be better to preserve the debug
messages, i.e. if we replace del_timer with nf_ct_kill and
remove the ct->timeout.function call below. I assume nf_ct_kill
still returns such bool result. Then the debug messages should
not be affected, I think.
> - IP_VS_DBG(7, "%s: ct=%p, deleted conntrack timer for
> tuple="
> - FMT_TUPLE "\n",
> - __func__, ct, ARG_TUPLE(&tuple));
> - if (ct->timeout.function)
> - ct->timeout.function(ct->timeout.data);
> - } else {
> - IP_VS_DBG(7, "%s: ct=%p, no conntrack timer for tuple="
> - FMT_TUPLE "\n",
> - __func__, ct, ARG_TUPLE(&tuple));
> - }
> + nf_ct_kill(ct);
> nf_ct_put(ct);
> } else {
> IP_VS_DBG(7, "%s: no conntrack for tuple=" FMT_TUPLE "\n",
> --
> 2.7.3
Regards
--
Julian Anastasov <ja@xxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|