diff options
author | Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu> | 2007-07-19 04:48:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-19 13:04:45 -0400 |
commit | 16b6287a5286e872abece4f42a6eb5899157a836 (patch) | |
tree | f0c1da7a06ea868fa155760662d5e1df4fdf402a | |
parent | 4ac4efc1f5575a268417f80ef4059aee383f8331 (diff) |
nfsctl: use vfs_path_lookup
use vfs_path_lookup instead of open-coding the necessary functionality.
Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Acked-by: NeilBrown <neilb@suse.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Christoph Hellwig <hch@lst.de>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | fs/nfsctl.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/nfsctl.c b/fs/nfsctl.c index c043136a82ca..51f1b31acbf6 100644 --- a/fs/nfsctl.c +++ b/fs/nfsctl.c | |||
@@ -23,19 +23,15 @@ | |||
23 | static struct file *do_open(char *name, int flags) | 23 | static struct file *do_open(char *name, int flags) |
24 | { | 24 | { |
25 | struct nameidata nd; | 25 | struct nameidata nd; |
26 | struct vfsmount *mnt; | ||
26 | int error; | 27 | int error; |
27 | 28 | ||
28 | nd.mnt = do_kern_mount("nfsd", 0, "nfsd", NULL); | 29 | mnt = do_kern_mount("nfsd", 0, "nfsd", NULL); |
30 | if (IS_ERR(mnt)) | ||
31 | return (struct file *)mnt; | ||
29 | 32 | ||
30 | if (IS_ERR(nd.mnt)) | 33 | error = vfs_path_lookup(mnt->mnt_root, mnt, name, 0, &nd); |
31 | return (struct file *)nd.mnt; | 34 | mntput(mnt); /* drop do_kern_mount reference */ |
32 | |||
33 | nd.dentry = dget(nd.mnt->mnt_root); | ||
34 | nd.last_type = LAST_ROOT; | ||
35 | nd.flags = 0; | ||
36 | nd.depth = 0; | ||
37 | |||
38 | error = path_walk(name, &nd); | ||
39 | if (error) | 35 | if (error) |
40 | return ERR_PTR(error); | 36 | return ERR_PTR(error); |
41 | 37 | ||