Re: [PATCH 2/3] net/netfilter: refactor notifier registration

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Le mercredi 22 février 2012 à 10:48 +0400, Tony Zelenoff a écrit :
> * ret variable initialization removed as useless
> * Similar code strings concatenated and functions code
>   flow became more plain
> 
> Signed-off-by: Tony Zelenoff <antonz@xxxxxxxxxxxxx>
> ---
>  net/netfilter/nf_conntrack_ecache.c |   26 ++++++++++----------------
>  1 files changed, 10 insertions(+), 16 deletions(-)
> 
> diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
> index aa15977..9b8e986 100644
> --- a/net/netfilter/nf_conntrack_ecache.c
> +++ b/net/netfilter/nf_conntrack_ecache.c
> @@ -81,21 +81,18 @@ EXPORT_SYMBOL_GPL(nf_ct_deliver_cached_events);
>  int nf_conntrack_register_notifier(struct net *net,
>  				   struct nf_ct_event_notifier *new)
>  {
> -	int ret = 0;
> +	int ret;
>  	struct nf_ct_event_notifier *notify;
>  
>  	mutex_lock(&nf_ct_ecache_mutex);
>  	notify = rcu_dereference_protected(net->ct.nf_conntrack_event_cb,
>  					   lockdep_is_held(&nf_ct_ecache_mutex));
> -	if (notify != NULL) {
> +	if (likely(!notify)) {
> +		rcu_assign_pointer(net->ct.nf_conntrack_event_cb, new);
> +		ret = 0;
> +	} else
>  		ret = -EBUSY;
> -		goto out_unlock;
> -	}
> -	rcu_assign_pointer(net->ct.nf_conntrack_event_cb, new);
> -	mutex_unlock(&nf_ct_ecache_mutex);
> -	return ret;
>  
> -out_unlock:
>  	mutex_unlock(&nf_ct_ecache_mutex);
>  	return ret;
>  }
> @@ -118,21 +115,18 @@ EXPORT_SYMBOL_GPL(nf_conntrack_unregister_notifier);
>  int nf_ct_expect_register_notifier(struct net *net,
>  				   struct nf_exp_event_notifier *new)
>  {
> -	int ret = 0;
> +	int ret;
>  	struct nf_exp_event_notifier *notify;
>  
>  	mutex_lock(&nf_ct_ecache_mutex);
>  	notify = rcu_dereference_protected(net->ct.nf_expect_event_cb,
>  					   lockdep_is_held(&nf_ct_ecache_mutex));
> -	if (notify != NULL) {
> +	if (likely(!notify)) {
> +		rcu_assign_pointer(net->ct.nf_expect_event_cb, new);
> +		ret = 0;
> +	} else
>  		ret = -EBUSY;
> -		goto out_unlock;
> -	}
> -	rcu_assign_pointer(net->ct.nf_expect_event_cb, new);
> -	mutex_unlock(&nf_ct_ecache_mutex);
> -	return ret;
>  
> -out_unlock:
>  	mutex_unlock(&nf_ct_ecache_mutex);
>  	return ret;
>  }

Please leave the code as is, I find it more readable.

It is standard coding practice, and permits stacking of new init code,
with proper error path.

Dont add likely()/unlikely() clauses in slow path, this obfuscate code
for litle gain.




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


[Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

Powered by Linux