]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
NFS: Use common error handling code in nfs_alloc_server()
authorMarkus Elfring <elfring@users.sourceforge.net>
Sun, 14 Jun 2026 08:06:11 +0000 (10:06 +0200)
committerAnna Schumaker <anna.schumaker@hammerspace.com>
Wed, 17 Jun 2026 18:07:09 +0000 (14:07 -0400)
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.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
fs/nfs/client.c

index 0781b15e7e05c00be8db456527b2ecfcbecebd33..48ce013b30b0770e4d23ac46abe201d16f2e7a72 100644 (file)
@@ -1049,10 +1049,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);
 
@@ -1075,8 +1073,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;
@@ -1090,6 +1087,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);