diff options
Diffstat (limited to 'fs/nfs/nfs4client.c')
| -rw-r--r-- | fs/nfs/nfs4client.c | 6 | 
1 files changed, 4 insertions, 2 deletions
| diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index 04612c24d394..979631411a0e 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c @@ -868,8 +868,10 @@ static int nfs4_set_client(struct nfs_server *server,  	if (IS_ERR(clp))  		return PTR_ERR(clp); -	if (server->nfs_client == clp) +	if (server->nfs_client == clp) { +		nfs_put_client(clp);  		return -ELOOP; +	}  	/*  	 * Query for the lease time on clientid setup or renewal @@ -1244,11 +1246,11 @@ int nfs4_update_server(struct nfs_server *server, const char *hostname,  				clp->cl_proto, clnt->cl_timeout,  				clp->cl_minorversion, net);  	clear_bit(NFS_MIG_TSM_POSSIBLE, &server->mig_status); -	nfs_put_client(clp);  	if (error != 0) {  		nfs_server_insert_lists(server);  		return error;  	} +	nfs_put_client(clp);  	if (server->nfs_client->cl_hostname == NULL)  		server->nfs_client->cl_hostname = kstrdup(hostname, GFP_KERNEL); |