• Miklos Szeredi's avatar
    vfs: add faccessat2 syscall · c8ffd8bc
    Miklos Szeredi authored
    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: default avatarMiklos Szeredi <mszeredi@redhat.com>
    c8ffd8bc
internal.h 4.97 KB