From: "Josef 'Jeff' Sipek" use vfs_path_lookup instead of open-coding the necessary functionality. Signed-off-by: Josef 'Jeff' Sipek Acked-by: Trond Myklebust Cc: Al Viro Cc: Christoph Hellwig Cc: Neil Brown Cc: Michael Halcrow Signed-off-by: Andrew Morton --- net/sunrpc/rpc_pipe.c | 16 +++++++--------- 1 files changed, 7 insertions(+), 9 deletions(-) diff -puN net/sunrpc/rpc_pipe.c~sunrpc-use-vfs_path_lookup net/sunrpc/rpc_pipe.c --- a/net/sunrpc/rpc_pipe.c~sunrpc-use-vfs_path_lookup +++ a/net/sunrpc/rpc_pipe.c @@ -451,21 +451,19 @@ void rpc_put_mount(void) 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(); _