Re: [PATCH] nfsd: Use common error handling code in svc_export_alloc()
From: Jeff Layton
Date: Thu Jun 11 2026 - 08:31:21 EST
On Thu, 2026-06-11 at 14:11 +0200, Markus Elfring wrote:
> From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
> 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 <elfring@xxxxxxxxxxxxxxxxxxxxx>
> ---
> 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 <jlayton@xxxxxxxxxx>