[PATCH v2 2/2] NFS: Use common error handling code in nfs_alloc_server()

From: Markus Elfring

Date: Sun Jun 14 2026 - 04:43:55 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 14 Jun 2026 10:06:11 +0200

Use an additional label so that a bit of exception handling can be better
reused at the end of this function implementation.

This issue was detected by using the Coccinelle software.

Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
fs/nfs/client.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index e15568e388f8..4dcb91ab3039 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1063,10 +1063,8 @@ struct nfs_server *nfs_alloc_server(void)
return NULL;

server->s_sysfs_id = ida_alloc(&s_sysfs_ids, GFP_KERNEL);
- if (server->s_sysfs_id < 0) {
- kfree(server);
- return NULL;
- }
+ if (server->s_sysfs_id < 0)
+ goto free_server;

server->client = server->client_acl = ERR_PTR(-EINVAL);

@@ -1089,8 +1087,7 @@ struct nfs_server *nfs_alloc_server(void)
server->io_stats = nfs_alloc_iostats();
if (!server->io_stats) {
ida_free(&s_sysfs_ids, server->s_sysfs_id);
- kfree(server);
- return NULL;
+ goto free_server;
}

server->change_attr_type = NFS4_CHANGE_TYPE_IS_UNDEFINED;
@@ -1104,6 +1101,10 @@ struct nfs_server *nfs_alloc_server(void)
rpc_init_wait_queue(&server->uoc_rpcwaitq, "NFS UOC");

return server;
+
+free_server:
+ kfree(server);
+ return NULL;
}
EXPORT_SYMBOL_GPL(nfs_alloc_server);

--
2.54.0