On Wed, 2016-08-24 at 13:55 +0200, Florian Westphal wrote:
> Conntrack gc worker to evict stale entries.


>  static struct nf_conn *
>  __nf_conntrack_alloc(struct net *net,
>                    const struct nf_conntrack_zone *zone,
> @@ -1527,6 +1597,7 @@ static int untrack_refs(void)
>  
>  void nf_conntrack_cleanup_start(void)
>  {
> +     conntrack_gc_work.exiting = true;
>       RCU_INIT_POINTER(ip_ct_attach, NULL);
>  }
>  
> @@ -1536,6 +1607,9 @@ void nf_conntrack_cleanup_end(void)
>       while (untrack_refs() > 0)
>               schedule();
>  
> +     cancel_delayed_work_sync(&conntrack_gc_work.dwork);
> +     /* can be re-scheduled once */

Are you sure ?

As conntrack_gc_work.exiting = true, I do not see how this can happen ?

> +     cancel_delayed_work_sync(&conntrack_gc_work.dwork);
>       nf_ct_free_hashtable(nf_conntrack_hash, nf_conntrack_htable_size);
>  
>       nf_conntrack_proto_fini();
> @@ -1810,6 +1884,10 @@ int nf_conntrack_init_start(void)
>       }
>       /*  - and look it like as a confirmed connection */
>       nf_ct_untracked_status_or(IPS_CONFIRMED | IPS_UNTRACKED);
> +
> +     conntrack_gc_work_init(&conntrack_gc_work);
> +     schedule_delayed_work(&conntrack_gc_work.dwork, GC_INTERVAL);
> +
>       return 0;
>  
>  err_proto:


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to