diff options
Diffstat (limited to 'net/sunrpc/clnt.c')
| -rw-r--r-- | net/sunrpc/clnt.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c index 8c9141583d6..304f403a041 100644 --- a/net/sunrpc/clnt.c +++ b/net/sunrpc/clnt.c @@ -97,8 +97,7 @@ static int  rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)  {  	static uint32_t clntid; -	struct nameidata nd; -	struct path path; +	struct path path, dir;  	char name[15];  	struct qstr q = {  		.name = name, @@ -113,7 +112,7 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)  	path.mnt = rpc_get_mount();  	if (IS_ERR(path.mnt))  		return PTR_ERR(path.mnt); -	error = vfs_path_lookup(path.mnt->mnt_root, path.mnt, dir_name, 0, &nd); +	error = vfs_path_lookup(path.mnt->mnt_root, path.mnt, dir_name, 0, &dir);  	if (error)  		goto err; @@ -121,7 +120,7 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)  		q.len = snprintf(name, sizeof(name), "clnt%x", (unsigned int)clntid++);  		name[sizeof(name) - 1] = '\0';  		q.hash = full_name_hash(q.name, q.len); -		path.dentry = rpc_create_client_dir(nd.path.dentry, &q, clnt); +		path.dentry = rpc_create_client_dir(dir.dentry, &q, clnt);  		if (!IS_ERR(path.dentry))  			break;  		error = PTR_ERR(path.dentry); @@ -132,11 +131,11 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)  			goto err_path_put;  		}  	} -	path_put(&nd.path); +	path_put(&dir);  	clnt->cl_path = path;  	return 0;  err_path_put: -	path_put(&nd.path); +	path_put(&dir);  err:  	rpc_put_mount();  	return error;  |