diff options
| author | Steve French <sfrench@us.ibm.com> | 2006-02-15 03:36:31 +0000 |
|---|---|---|
| committer | Steve French <sfrench@us.ibm.com> | 2006-02-15 03:36:31 +0000 |
| commit | 0ed3f64ec3a7ad29e83e03607115eeffa32f553c (patch) | |
| tree | 528681b043e947cfc51527d56098f586b6dfa217 /arch/s390/kernel/compat_linux.c | |
| parent | 5815449d1bfcb22f74b0e36a8b0631d6584cb7fc (diff) | |
| parent | 10ee39fe3ff618d274e1cd0f6abbc2917b736bfd (diff) | |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'arch/s390/kernel/compat_linux.c')
| -rw-r--r-- | arch/s390/kernel/compat_linux.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index cc20f0e3a7d..2d021626c1a 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c @@ -905,6 +905,26 @@ asmlinkage long sys32_fstat64(unsigned long fd, struct stat64_emu31 __user * sta return ret; } +asmlinkage long sys32_fstatat(unsigned int dfd, char __user *filename, + struct stat64_emu31 __user* statbuf, int flag) +{ + struct kstat stat; + int error = -EINVAL; + + if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) + goto out; + + if (flag & AT_SYMLINK_NOFOLLOW) + error = vfs_lstat_fd(dfd, filename, &stat); + else + error = vfs_stat_fd(dfd, filename, &stat); + + if (!error) + error = cp_stat64(statbuf, &stat); +out: + return error; +} + /* * Linux/i386 didn't use to be able to handle more than * 4 system call parameters, so these system calls used a memory |
