diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-05-12 21:05:59 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-05-12 21:05:59 +0000 |
commit | ba2dacab305c598cd4c34a604f8e276bf5bab5ff (patch) | |
tree | 78670a0139bf4d5ace617b29b7eba82bbc74d602 /arch/sparc64/solaris/fs.c | |
parent | b77bf69998121e689c5e86cc5630d39a0a9ee6ca (diff) |
Merge with Linux 2.3.99-pre7 and various other bits.
Diffstat (limited to 'arch/sparc64/solaris/fs.c')
-rw-r--r-- | arch/sparc64/solaris/fs.c | 26 |
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; |