summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/solaris/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/solaris/fs.c')
-rw-r--r--arch/sparc64/solaris/fs.c26
1 files changed, 11 insertions, 15 deletions
diff --git a/arch/sparc64/solaris/fs.c b/arch/sparc64/solaris/fs.c
index 57e50cd8d..6c19f8577 100644
--- a/arch/sparc64/solaris/fs.c
+++ b/arch/sparc64/solaris/fs.c
@@ -1,4 +1,4 @@
-/* $Id: fs.c,v 1.18 2000/04/08 02:11:54 davem Exp $
+/* $Id: fs.c,v 1.19 2000/05/09 04:48:35 davem Exp $
* fs.c: fs related syscall emulation for Solaris
*
* Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
@@ -477,17 +477,15 @@ static int report_statvfs64(struct inode *inode, u32 buf)
asmlinkage int solaris_statvfs(u32 path, u32 buf)
{
- struct dentry * dentry;
+ struct nameidata nd;
int error;
lock_kernel();
- dentry = namei((const char *)A(path));
- error = PTR_ERR(dentry);
- if (!IS_ERR(dentry)) {
- struct inode * inode = dentry->d_inode;
-
+ error = user_path_walk((const char *)A(path),&nd);
+ if (!error) {
+ struct inode * inode = nd.dentry->d_inode;
error = report_statvfs(inode, buf);
- dput(dentry);
+ path_release(&nd);
}
unlock_kernel();
return error;
@@ -512,17 +510,15 @@ asmlinkage int solaris_fstatvfs(unsigned int fd, u32 buf)
asmlinkage int solaris_statvfs64(u32 path, u32 buf)
{
- struct dentry * dentry;
+ struct nameidata nd;
int error;
lock_kernel();
- dentry = namei((const char *)A(path));
- error = PTR_ERR(dentry);
- if (!IS_ERR(dentry)) {
- struct inode * inode = dentry->d_inode;
-
+ error = user_path_walk((const char *)A(path), &nd);
+ if (!error) {
+ struct inode * inode = nd.dentry->d_inode;
error = report_statvfs64(inode, buf);
- dput(dentry);
+ path_release(&nd);
}
unlock_kernel();
return error;