Skip to contentSkip to conversation

Oops in error paths

PATCH New Steve Dickson 1 participant 1 message Jul 29, 2004 NFS client

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Oops in error paths

Here are some oops I found in error paths in the mounting pathes while debugging something else... I sent it out a while ago, but it didn't seem to get any traction....

The nfs_fill_super() fix is obvious and in nfs4_fill_super(), the server->client ptr needs to be set before the cl_idmap check, since rpc_shutdown_client() needs it when the check fails.

SteveD.

fs/nfs/inode.c renamed from fs/nfs/inode.c.org +6 -5
@@ -456,7 +456,7 @@ nfs_fill_super(struct super_block *sb, s
 
 	/* Create RPC client handles */
 	server->client = nfs_create_client(server, data);
-	if (server->client == NULL)
+	if (IS_ERR(server->client))
 		goto out_fail;
 	/* RFC 2623, sec 2.3.2 */
 	if (authflavor != RPC_AUTH_UNIX) {
@@ -1550,16 +1550,17 @@ static int nfs4_fill_super(struct super_
 		err = PTR_ERR(clnt);
 		goto out_remove_list;
 	}
+
+	clnt->cl_intr     = (server->flags & NFS4_MOUNT_INTR) ? 1 : 0;
+	clnt->cl_softrtry = (server->flags & NFS4_MOUNT_SOFT) ? 1 : 0;
+	server->client    = clnt;
+
 	err = -ENOMEM;
 	if (server->nfs4_state->cl_idmap == NULL) {
 		printk(KERN_WARNING "NFS: failed to create idmapper.\n");
 		goto out_shutdown;
 	}
 
-	clnt->cl_intr     = (server->flags & NFS4_MOUNT_INTR) ? 1 : 0;
-	clnt->cl_softrtry = (server->flags & NFS4_MOUNT_SOFT) ? 1 : 0;
-	server->client    = clnt;
-
 	if (clnt->cl_auth->au_flavor != authflavour) {
 		if (rpcauth_create(authflavour, clnt) == NULL) {
 			printk(KERN_WARNING "NFS: couldn't create credcache!\n");