| Age | Commit message (Collapse) | Author | 
 | 
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.
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 |