libgocryptfs/internal/fusefrontend
Jakob Unterwurzacher 09954c4bde fusefrontend: implement our own Access()
Not having Access() means go-fuse emulates it by looking at Getattr().
This works fine most of the time, but breaks down on sshfs, where
sshfs-benchmark.bash shows this:

	gocryptfs/tests$ ./sshfs-benchmark.bash nuetzlich.net
	working directory: /tmp/sshfs-benchmark.bash.JQC
	sshfs mounted: nuetzlich.net:/tmp -> sshfs.mnt
	gocryptfs mounted: sshfs.mnt/sshfs-benchmark.bash.Wrz/gocryptfs.crypt -> gocryptfs.mnt

	sshfs-benchmark.bash:    sshfs  gocryptfs-on-sshfs
	git init                  3.98                6.80
	rsync                     7.71               10.84
	rm -R                     4.30rm: descend into write-protected directory 'gocryptfs.mnt/git1'?

The go-fuse emulation gets it wrong here because sshfs reports
permissions but does not enforce them.

Implement it ourselves properly.
2023-05-17 23:26:56 +02:00
..
args.go cli: drop -forcedecode flag 2021-09-10 12:14:19 +02:00
ctlsock_interface.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
dircache.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
file.go fusefrontend: unbreak isConsecutiveWrite streaming write optimization 2023-02-21 22:08:41 +01:00
file_allocate_truncate.go make format 2022-12-29 15:00:37 +01:00
file_api_check.go v2api: clean up api TODOs 2020-08-16 13:52:27 +02:00
file_holes.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
file_setattr.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node.go fusefrontend: implement our own Access() 2023-05-17 23:26:56 +02:00
node_api_check.go v2api: implement Getxattr, Setxattr, Removexattr, Listxattr 2020-07-14 19:55:20 +02:00
node_dir_ops.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node_helpers.go fusefrontent: report correct size on hard link creation 2023-03-29 22:16:14 +02:00
node_open_create.go fusefrontend: honor ForceOwner for LOOKUP and CREATE operations 2021-10-15 17:35:12 +02:00
node_prepare_syscall.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
node_xattr.go fusefrontend: allow slashes in xattr names 2021-12-19 14:43:56 +01:00
node_xattr_darwin.go darwin: use O_NOFOLLOW for xattr opens 2021-12-09 17:55:05 +01:00
node_xattr_linux.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
prepare_syscall_test.go go mod: declare module version v2 2021-08-23 15:05:15 +02:00
root_node.go fusefrontend: allow slashes in xattr names 2021-12-19 14:43:56 +01:00
xattr_unit_test.go nametransform: add longNameMax parameter 2021-10-21 14:55:30 +02:00