summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/osf_sys.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/alpha/kernel/osf_sys.c')
-rw-r--r--arch/alpha/kernel/osf_sys.c13
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;
}