Re: [PATCH] nfsd: Use common error handling code in svc_export_alloc()

Jeff Layton <[email protected]> Thu, 11 Jun 2026 08:28:43 -0400
Newsgroups org.kernel.vger.kernel-janitors,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs
Message-ID <[email protected]>
On Thu, 2026-06-11 at 14:11 +0200, Markus Elfring wrote:
> From: Markus Elfring <[email protected]>
> Date: Thu, 11 Jun 2026 14:03:48 +0200
> 
> Use an additional label so that a bit of exception handling can be better
> reused at the end of an if branch.
> 
> This issue was detected by using the Coccinelle software.
> 
> Signed-off-by: Markus Elfring <[email protected]>
> ---
>  fs/nfsd/export.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
> index eb020054f9a3..bb106733f3ec 100644
> --- a/fs/nfsd/export.c
> +++ b/fs/nfsd/export.c
> @@ -1589,13 +1589,12 @@ static struct cache_head *svc_export_alloc(void)
>  		return NULL;
>  
>  	i->ex_stats = kmalloc_obj(*(i->ex_stats));
> -	if (!i->ex_stats) {
> -		kfree(i);
> -		return NULL;
> -	}
> +	if (!i->ex_stats)
> +		goto free_export;
>  
>  	if (export_stats_init(i->ex_stats)) {
>  		kfree(i->ex_stats);
> +free_export:
>  		kfree(i);
>  		return NULL;
>  	}

I'm not a fan of this patch. I mean, it's legal and all, but sticking a
goto label in the middle of a if block makes for messy-looking and hard
to reason about code.

-- 
Jeff Layton <[email protected]>