diff options
Diffstat (limited to 'arch/arm/kernel/sys_oabi-compat.c')
-rw-r--r-- | arch/arm/kernel/sys_oabi-compat.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 42623db7f870..d59a0cd537f0 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c | |||
@@ -83,6 +83,7 @@ | |||
83 | #include <linux/net.h> | 83 | #include <linux/net.h> |
84 | #include <linux/ipc.h> | 84 | #include <linux/ipc.h> |
85 | #include <linux/uaccess.h> | 85 | #include <linux/uaccess.h> |
86 | #include <linux/slab.h> | ||
86 | 87 | ||
87 | struct oldabi_stat64 { | 88 | struct oldabi_stat64 { |
88 | unsigned long long st_dev; | 89 | unsigned long long st_dev; |
@@ -176,21 +177,12 @@ asmlinkage long sys_oabi_fstatat64(int dfd, | |||
176 | int flag) | 177 | int flag) |
177 | { | 178 | { |
178 | struct kstat stat; | 179 | struct kstat stat; |
179 | int error = -EINVAL; | 180 | int error; |
180 | 181 | ||
181 | if ((flag & ~AT_SYMLINK_NOFOLLOW) != 0) | 182 | error = vfs_fstatat(dfd, filename, &stat, flag); |
182 | goto out; | 183 | if (error) |
183 | 184 | return error; | |
184 | if (flag & AT_SYMLINK_NOFOLLOW) | 185 | return cp_oldabi_stat64(&stat, statbuf); |
185 | error = vfs_lstat_fd(dfd, filename, &stat); | ||
186 | else | ||
187 | error = vfs_stat_fd(dfd, filename, &stat); | ||
188 | |||
189 | if (!error) | ||
190 | error = cp_oldabi_stat64(&stat, statbuf); | ||
191 | |||
192 | out: | ||
193 | return error; | ||
194 | } | 186 | } |
195 | 187 | ||
196 | struct oabi_flock64 { | 188 | struct oabi_flock64 { |