summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-18fusefronted: reject GETXATTR "security.capability"Jakob Unterwurzacher
Unless we are mounted with -suid, we can reject these requests, and gain back some lost speed. Closes https://github.com/rfjakob/gocryptfs/issues/515
2020-10-18syscallcompat: add getxattr fastpathsJakob Unterwurzacher
The allocations from Lgetxattr were #1 in the tar extract allocation profile (caused by security.capability lookups). No more! $ benchstat old.txt new.txt name old time/op new time/op delta Lgetxattr-4 15.2µs ± 0% 1.8µs ± 0% ~ (p=1.000 n=1+1) $ ./benchmark.bash Testing gocryptfs at /tmp/benchmark.bash.H8p: gocryptfs v2.0-beta1-4-g95ea738-dirty; go-fuse v2.0.4-0.20200908172753-0b6cbc515082 => github.com/rfjakob/go-fuse/v2 v2.0.4-0.20201015204057-88b12c99f8af; 2020-10-18 go1.15.3 linux/amd64 /tmp/benchmark.bash.H8p.mnt is a mountpoint WRITE: 262144000 bytes (262 MB, 250 MiB) copied, 0,520109 s, 504 MB/s READ: 262144000 bytes (262 MB, 250 MiB) copied, 0,255672 s, 1,0 GB/s UNTAR: 30,238 MD5: 12,721 LS: 10,038 RM: 16,536
2020-10-17fsck: make sure we unmount in all casesJakob Unterwurzacher
2020-10-16syscallcompat: add Lgetxattr benchmarkJakob Unterwurzacher
2020-10-16performance.txt: add gocryptfs v1.8.0 resultsJakob Unterwurzacher
2020-10-16Update performance.txt with gocryptfs v2.0-beta1 resultJakob Unterwurzacher
As expected, we are slow. Fd caching will be implemented later.
2020-10-15Update README for v2.0-beta1v2.0-beta1Jakob Unterwurzacher
2020-10-15v2pai: delete fusefrontend_reverse_v1apiJakob Unterwurzacher
Served its mission a copy-paste source but can now be deleted.
2020-10-15go.mod: temporarily switch to patched go-fuse forkJakob Unterwurzacher
Use our fork until https://review.gerrithub.io/c/hanwen/go-fuse/+/503508 gets merged. Command used was: go mod edit -replace github.com/hanwen/go-fuse/v2=github.com/rfjakob/go-fuse/v2@knodes_upstreaming_v3
2020-10-15contrib: cleanup-tmp-mounts: also clean ext4-ramdiskJakob Unterwurzacher
2020-10-14main: show microseconds in go-fuse logsJakob Unterwurzacher
Suppress the date but show microseconds in fuse debug logs (-fusedebug) and go-fuse warnings.
2020-10-14syscallcompat: don't retry Close()Jakob Unterwurzacher
After Close() returns, the fd is dead, even if we received EINTR. Don't retry, we could shoot down an unrelated fd that received the same fd number.
2020-10-14syscallcompat: retry ops on EINTRJakob Unterwurzacher
Retry operations that have been shown to throw EINTR errors on CIFS. Todo: Solution for this pain in the back: warning: unix.Getdents returned errno 2 in the middle of data rm: cannot remove 'linux-3.0.old3/Documentation/ABI/removed': Input/output error Progress towards fixing https://github.com/rfjakob/gocryptfs/issues/483 .
2020-10-11syscallcompat: Openat: retry on EINTRJakob Unterwurzacher
Towards fixing https://github.com/rfjakob/gocryptfs/issues/507
2020-10-04build.bash: show "go mod edit -replace" in version stringJakob Unterwurzacher
If you do something like this, go mod edit -replace github.com/hanwen/go-fuse/v2=/home/jakob/go/src/github.com/hanwen/go-fuse the version string of the resulting binary should reflect that. Before: gocryptfs v1.8.0-135-g352b547-dirty.gofuse_v2api; go-fuse v2.0.4-0.20200908172753-0b6cbc515082; 2020-10-03 go1.15.2 linux/amd64 After: gocryptfs v1.8.0-135-g352b547-dirty.gofuse_v2api; go-fuse v2.0.4-0.20200908172753-0b6cbc515082 => /home/jakob/go/src/github.com/hanwen/go-fuse; 2020-10-03 go1.15.2 linux/amd64
2020-10-04tests: fsstress-gocryptfs.bash: log timestamp for each iterationJakob Unterwurzacher
2020-10-04tests: fsstress-gocryptfs.bash: add DEBUG optionJakob Unterwurzacher
Also add a wrapper script, fsstress.collect-crashes.sh, to collect the debug output. https://github.com/hanwen/go-fuse/issues/372
2020-10-03fsstress-gocryptfs.bash: don't hang if TMPDIR ends in /Jakob Unterwurzacher
We would hang like this ./fsstress-loopback.bash Recompile go-fuse loopback: v2.0.3-7-g0b6cbc5 Waiting for mount: xxxxxxxx^C if TMPDIR has a trailing /. The reason is that the paths in /proc/self/mounts are normalized, while TMPDIR may not be.
2020-09-21go mod tidyPavol Rusnak
2020-09-18fsstress-gocryptfs.bash: print loopback version & mount pathJakob Unterwurzacher
To make the used go-fuse version clear in logs, print it on startup, similar to what we do with gocryptfs.
2020-09-18contrib/mount-ext4-ramdisk.sh: clean up in error caseJakob Unterwurzacher
Also fix all shellcheck warnings.
2020-09-14Add contrib/mount-ext4-ramdisk.shJakob Unterwurzacher
2020-09-13stress_tests/fsstress-gocryptfs.bash: use rm -Rf for cleanupJakob Unterwurzacher
Apparently, kernel 5.8 now allows unprivileged "mknod /tmp/x c 0 0": vfs: allow unprivileged whiteout creation https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.8.9&id=a3c751a50fe6bbe50eb7622a14b18b361804ee0c which is why rm throws a new prompt: rm: remove write-protected character special file '...'? Use rm -Rf to suppress that.
2020-09-12go.mod: update go-fuseJakob Unterwurzacher
2020-09-12Add support for FIDO2 tokensPavol Rusnak
2020-09-12tests/plaintextnames: add TestInoReuseEvilJakob Unterwurzacher
2020-09-09tests: add TestInoReuseJakob Unterwurzacher
2020-09-09test_helpers: print warning when not running on ext4Jakob Unterwurzacher
ext4 reuses inode numbers, tmpfs does not.
2020-09-09v2api: add Darwin xattr supportJakob Unterwurzacher
2020-09-09syscallcompat: add Renameat2 for DarwinJakob Unterwurzacher
2020-09-09test_helpers: mark MountOrFatal as a Helper()Jakob Unterwurzacher
2020-09-06manpage: link to exitcodes.goJakob Unterwurzacher
2020-09-06gocryptfs -init: fix wrong exit code on non-empty dirJakob Unterwurzacher
Fixes https://github.com/rfjakob/gocryptfs/pull/503
2020-08-30v2api/reverse: update TODO comment on xattrsJakob Unterwurzacher
2020-08-30tests/reverse: implement (skipped) xattr testJakob Unterwurzacher
v1api reverse mode did not have xattr support, the v2api version may have at some point. Prep the test already.
2020-08-16v2api/reverse: implement LseekJakob Unterwurzacher
2020-08-16v2api/reverse: implement StatfsJakob Unterwurzacher
2020-08-16v2api: clean up api TODOsJakob Unterwurzacher
2020-08-16v2api: rename "File2" to just "File"Jakob Unterwurzacher
Rename the symbols and the files.
2020-08-15v2api/reverse: finish -excludeJakob Unterwurzacher
Tests pass now.
2020-08-15v2api/reverse: start wiring up -exclude functionalityJakob Unterwurzacher
Exclude in readdir is missing.
2020-08-15test_helper: VerifyExistence: don't panicJakob Unterwurzacher
Instead bubble up the error to the testing object.
2020-08-15v2api/reverse: fix two fd leaksJakob Unterwurzacher
2020-08-15v2api/reverse: implement ctlsocksrv.InterfaceJakob Unterwurzacher
2020-08-15v2api/reverse: implement gocryptfs.conf mapping with -plaintextnamesJakob Unterwurzacher
2020-08-09v2api/reverse: implement ReadJakob Unterwurzacher
2020-08-08v2api/reverse: implement ReadlinkJakob Unterwurzacher
2020-08-02v2api/reverse: implement Lookup for longnameJakob Unterwurzacher
2020-08-02v2api/reverse: implement Lookup for gocryptfs.conf & gocryptfs.dirivJakob Unterwurzacher
2020-08-01v2api/reverse: add missing decryptPath call openBackingDirJakob Unterwurzacher