|
@@ -460,21 +460,19 @@ static struct dentry_operations rpc_dentry_operations = {
|
|
|
static int
|
|
|
rpc_lookup_parent(char *path, struct nameidata *nd)
|
|
|
{
|
|
|
+ struct vfsmount *mnt;
|
|
|
+
|
|
|
if (path[0] == '\0')
|
|
|
return -ENOENT;
|
|
|
- nd->mnt = rpc_get_mount();
|
|
|
- if (IS_ERR(nd->mnt)) {
|
|
|
+
|
|
|
+ mnt = rpc_get_mount();
|
|
|
+ if (IS_ERR(mnt)) {
|
|
|
printk(KERN_WARNING "%s: %s failed to mount "
|
|
|
"pseudofilesystem \n", __FILE__, __FUNCTION__);
|
|
|
- return PTR_ERR(nd->mnt);
|
|
|
+ return PTR_ERR(mnt);
|
|
|
}
|
|
|
- mntget(nd->mnt);
|
|
|
- nd->dentry = dget(rpc_mount->mnt_root);
|
|
|
- nd->last_type = LAST_ROOT;
|
|
|
- nd->flags = LOOKUP_PARENT;
|
|
|
- nd->depth = 0;
|
|
|
|
|
|
- if (path_walk(path, nd)) {
|
|
|
+ if (vfs_path_lookup(mnt->mnt_root, mnt, path, LOOKUP_PARENT, nd)) {
|
|
|
printk(KERN_WARNING "%s: %s failed to find path %s\n",
|
|
|
__FILE__, __FUNCTION__, path);
|
|
|
rpc_put_mount();
|