summaryrefslogtreecommitdiff
path: root/arch/sh
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@redhat.com>2020-05-14 16:44:25 +0200
committerMiklos Szeredi <mszeredi@redhat.com>2020-05-14 16:44:25 +0200
commitc8ffd8bcdd28296a198f237cc595148a8d4adfbe (patch)
tree71ce857ad8d9feea14cfe9619013e84a88bb374c /arch/sh
parent55923e4d7d195a34d3b1faaba57a5a6551e88b36 (diff)
vfs: add faccessat2 syscall
POSIX defines faccessat() as having a fourth "flags" argument, while the linux syscall doesn't have it. Glibc tries to emulate AT_EACCESS and AT_SYMLINK_NOFOLLOW, but AT_EACCESS emulation is broken. Add a new faccessat(2) syscall with the added flags argument and implement both flags. The value of AT_EACCESS is defined in glibc headers to be the same as AT_REMOVEDIR. Use this value for the kernel interface as well, together with the explanatory comment. Also add AT_EMPTY_PATH support, which is not documented by POSIX, but can be useful and is trivial to implement. Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/kernel/syscalls/syscall.tbl1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
index c7a30fcd135f..acc35daa1b79 100644
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
@@ -440,3 +440,4 @@
# 435 reserved for clone3
437 common openat2 sys_openat2
438 common pidfd_getfd sys_pidfd_getfd
+439 common faccessat2 sys_faccessat2