diff options
Diffstat (limited to 'arch/alpha/kernel/osf_sys.c')
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 299a1b338..398de179c 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c @@ -302,17 +302,14 @@ static int do_osf_statfs(struct dentry * dentry, struct osf_statfs *buffer, unsi asmlinkage int osf_statfs(char *path, struct osf_statfs *buffer, unsigned long bufsiz) { - struct dentry *dentry; + struct nameidata nd; int retval; - lock_kernel(); - dentry = namei(path); - retval = PTR_ERR(dentry); - if (!IS_ERR(dentry)) { - retval = do_osf_statfs(dentry, buffer, bufsiz); - dput(dentry); + retval = user_path_walk(path, &nd); + if (!retval) { + retval = do_osf_statfs(nd.dentry, buffer, bufsiz); + path_release(&nd); } - unlock_kernel(); return retval; } |