|
@@ -97,8 +97,7 @@ static int
|
|
rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
|
rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
|
{
|
|
{
|
|
static uint32_t clntid;
|
|
static uint32_t clntid;
|
|
- struct nameidata nd;
|
|
|
|
- struct path path;
|
|
|
|
|
|
+ struct path path, dir;
|
|
char name[15];
|
|
char name[15];
|
|
struct qstr q = {
|
|
struct qstr q = {
|
|
.name = name,
|
|
.name = name,
|
|
@@ -113,7 +112,7 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
|
path.mnt = rpc_get_mount();
|
|
path.mnt = rpc_get_mount();
|
|
if (IS_ERR(path.mnt))
|
|
if (IS_ERR(path.mnt))
|
|
return PTR_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)
|
|
if (error)
|
|
goto err;
|
|
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++);
|
|
q.len = snprintf(name, sizeof(name), "clnt%x", (unsigned int)clntid++);
|
|
name[sizeof(name) - 1] = '\0';
|
|
name[sizeof(name) - 1] = '\0';
|
|
q.hash = full_name_hash(q.name, q.len);
|
|
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))
|
|
if (!IS_ERR(path.dentry))
|
|
break;
|
|
break;
|
|
error = PTR_ERR(path.dentry);
|
|
error = PTR_ERR(path.dentry);
|
|
@@ -132,11 +131,11 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
|
goto err_path_put;
|
|
goto err_path_put;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- path_put(&nd.path);
|
|
|
|
|
|
+ path_put(&dir);
|
|
clnt->cl_path = path;
|
|
clnt->cl_path = path;
|
|
return 0;
|
|
return 0;
|
|
err_path_put:
|
|
err_path_put:
|
|
- path_put(&nd.path);
|
|
|
|
|
|
+ path_put(&dir);
|
|
err:
|
|
err:
|
|
rpc_put_mount();
|
|
rpc_put_mount();
|
|
return error;
|
|
return error;
|