libgocryptfs/internal/syscallcompat
Sebastian Lackner 5055f39bd5 fusefrontend: Allow to set/remove xattr on directory without read permission.
Setting/removing extended attributes on directories was partially fixed with
commit eff35e60b6. However, on most file systems
it is also possible to do these operations without read access (see tests).

Since we cannot open a write-access fd to a directory, we have to use the
/proc/self/fd trick (already used for ListXAttr) for the other operations aswell.
For simplicity, let's separate the Linux and Darwin code again (basically revert
commit f320b76fd1), and always use the
/proc/self/fd trick on Linux. On Darwin we use the best-effort approach with
openBackingFile() as a fallback.

More discussion about the available options is available in
https://github.com/rfjakob/gocryptfs/issues/308.
2019-01-05 12:34:40 +01:00
..
emulate.go Fix the easy golint warnings 2018-04-08 20:26:25 +02:00
emulate_test.go macos: tests: fix deleting of scratch dir 2018-03-05 23:40:08 +01:00
getdents_linux.go syscallcompat: downgrade DT_UNKNOWN message level on XFS 2018-11-17 17:44:21 +01:00
getdents_other.go syscallcompat: convert Getdents to fd input, add emulation 2017-12-03 19:33:26 +01:00
getdents_test.go gccgo: skip emulateGetdents on linux 2018-02-04 21:14:12 +01:00
helpers.go fusefrontend: doWrite: delete file header if first write fails 2018-07-15 15:12:55 +02:00
main_test.go syscallcompat: move test setup into its own file 2017-12-02 19:57:23 +01:00
open_nofollow.go syscallcompat: Use O_PATH to open base directory. 2019-01-03 18:24:05 +01:00
open_nofollow_test.go syscallcompat: untangle OpenNofollow and rename to OpenDirNofollow 2018-09-08 17:41:17 +02:00
sys_common.go fusefrontend: Allow to set/remove xattr on directory without read permission. 2019-01-05 12:34:40 +01:00
sys_common_test.go tests: syscallcompat: allow failure for symlinks > 1000 2018-10-11 19:45:47 +02:00
sys_darwin.go syscallcompat: use O_PATH in OpenDirNofollow 2018-09-08 18:06:33 +02:00
sys_linux.go syscallcompat: untangle Openat flag check 2018-09-22 19:38:47 +02:00
unix2syscall_darwin.go syscallcompat: add Darwin version of unix2syscall 2017-12-06 00:18:38 +01:00
unix2syscall_linux.go Fix assignment error in Unix2syscall by converting Timespec into Nsec (#203) 2018-02-03 13:42:49 +01:00