Oops in error paths
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" );