# Functions
DetectQuirks decides if there are known quirks on the backing filesystem that need to be workarounded.
Dup3 wraps the Dup3 syscall.
EnospcPrealloc preallocates ciphertext space without changing the file size.
Faccessat exists both in Linux and in MacOS 10.10+, but the Linux version DOES NOT support any flags.
Fallocate wraps the Fallocate syscall.
FchmodatNofollow is like Fchmodat but never follows symlinks.
Fchownat syscall.
Fgetxattr is a wrapper around unix.Fgetxattr that handles the buffer sizing.
Flistxattr is a wrapper for unix.Flistxattr that handles buffer sizing and parsing the returned blob to a string slice.
Flush is a helper for the FUSE command FLUSH.
Fstatat syscall.
Fstatat2 is a more convenient version of Fstatat.
FutimesNano syscall.
Getdents syscall with "." and ".." filtered out.
GetdentsSpecial calls the Getdents syscall, with normal entries and "." / ".." split into two slices.
IsENOSPC tries to find out if "err" is a (potentially wrapped) ENOSPC error.
Lgetxattr is a wrapper around unix.Lgetxattr that handles the buffer sizing.
Llistxattr is a wrapper for unix.Llistxattr that handles buffer sizing and parsing the returned blob to a string slice.
LsetxattrUser runs the Lsetxattr syscall in the context of a different user.
MkdiratUser runs the Mkdirat syscall in the context of a different user.
Mknodat wraps the Mknodat syscall.
MknodatUser runs the Mknodat syscall in the context of a different user.
Open wraps syscall.Open.
Openat wraps the Openat syscall.
OpenatUser runs the Openat syscall in the context of a different user.
OpenDirNofollow opens the dir at "relPath" in a way that is secure against symlink attacks.
Readlinkat is a convenience wrapper around unix.Readlinkat() that takes care of buffer sizing.
Renameat wraps the Renameat syscall.
Renameat2 does not exist on Darwin, so we have to wrap it here.
SymlinkatUser runs the Symlinkat syscall in the context of a different user.
Unix2syscall converts a unix.Stat_t struct to a syscall.Stat_t struct.
Unlinkat syscall.
UtimesNanoAtNofollow is like UtimesNanoAt but never follows symlinks.
# Constants
O_DIRECT means oncached I/O on Linux.
O_PATH is only defined on Linux.
PATH_MAX is the maximum allowed path length on Linux.
QuirkBrokenFalloc means the falloc is broken.
QuirkDuplicateIno1 means that we have duplicate inode numbers.
QuirkNoUserXattr means that user.* xattrs are not supported.
No description provided by the author
Only defined on Linux.
No description provided by the author
Make the buffer 1kB bigger so we can detect overflows.
We try with a small buffer first - this one can be allocated on the stack.
No description provided by the author