[PATCH 21/25] netns ct: per-netns event cache

Patrick McHardy kaber at trash.net
Thu Sep 4 09:58:38 PDT 2008


adobriyan at gmail.com wrote:
>  static inline void
> -nf_conntrack_event_cache(enum ip_conntrack_events event,
> +nf_conntrack_event_cache(struct net *net, enum ip_conntrack_events event,
>  			 const struct sk_buff *skb)
>  {

Passing the conntrack instead of the struct net and the skb
would probably keep the callers cleaner.

>  	struct nf_conn *ct = (struct nf_conn *)skb->nfct;
>  	struct nf_conntrack_ecache *ecache;
>  
>  	local_bh_disable();
> -	ecache = &__get_cpu_var(nf_conntrack_ecache);
> +	ecache = per_cpu_ptr(net->ct.ecache, raw_smp_processor_id());
>  	if (ct != ecache->ct)
>  		__nf_ct_event_cache_init(ct);
>  	ecache->events |= event;
> @@ -60,16 +58,29 @@ nf_ct_expect_event(enum ip_conntrack_expect_events event,
>  	atomic_notifier_call_chain(&nf_ct_expect_chain, event, exp);
>  }
>  


More information about the Containers mailing list