Age | Commit message (Collapse) | Author |
|
|
|
https://review.gerrithub.io/c/hanwen/go-fuse/+/503508
was merged as
https://github.com/hanwen/go-fuse/commit/1d0096e57910b8277fd8862b5f0932c04d41857b
so we don't need our fork anymore.
|
|
This is *very* hard to find.
https://github.com/rfjakob/gocryptfs/issues/152
|
|
These were committed by mistake.
|
|
These were committed by mistake.
|
|
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
|
|
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
|
|
|
|
|
|
|
|
As expected, we are slow. Fd caching will be implemented later.
|
|
|
|
Served its mission a copy-paste source but can now be deleted.
|
|
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
|
|
|
|
Suppress the date but show microseconds in fuse debug logs
(-fusedebug) and go-fuse warnings.
|
|
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.
|
|
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 .
|
|
Towards fixing https://github.com/rfjakob/gocryptfs/issues/507
|
|
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
|
|
|
|
Also add a wrapper script, fsstress.collect-crashes.sh, to collect
the debug output.
https://github.com/hanwen/go-fuse/issues/372
|
|
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.
|
|
|
|
To make the used go-fuse version clear in logs,
print it on startup, similar to what we do with gocryptfs.
|
|
Also fix all shellcheck warnings.
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
ext4 reuses inode numbers, tmpfs does not.
|
|
|
|
|
|
|
|
|
|
Fixes https://github.com/rfjakob/gocryptfs/pull/503
|
|
|
|
v1api reverse mode did not have xattr support,
the v2api version may have at some point. Prep the
test already.
|
|
|
|
|
|
|
|
Rename the symbols and the files.
|
|
Tests pass now.
|
|
Exclude in readdir is missing.
|
|
Instead bubble up the error to the testing object.
|
|
|
|
|
|
|