diff options
Diffstat (limited to 'arch/s390/kernel/compat_linux.c')
| -rw-r--r-- | arch/s390/kernel/compat_linux.c | 18 | 
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 6cc87d8c868..002c70d3cb7 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c @@ -702,20 +702,12 @@ asmlinkage long sys32_fstatat64(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); +	int error; -	if (!error) -		error = cp_stat64(statbuf, &stat); -out: -	return error; +	error = vfs_fstatat(dfd, filename, &stat, flag); +	if (error) +		return error; +	return cp_stat64(statbuf, &stat);  }  /*  |