<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal, branch v2.0-beta2</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=v2.0-beta2</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=v2.0-beta2'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2020-11-10T18:37:49+00:00</updated>
<entry>
<title>fusefrontend_reverse: fix GETATTR panic</title>
<updated>2020-11-10T18:37:49+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-11-10T18:37:49+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=1c1692c4d9ab0357a66ffe5673aeb190cd326a1a'/>
<id>urn:sha1:1c1692c4d9ab0357a66ffe5673aeb190cd326a1a</id>
<content type='text'>
We don't implement Getattr(), so don't try to call it.

Reported at https://github.com/rfjakob/gocryptfs/issues/519#issuecomment-718790790 :

15:22:53.414101 rx 3344: READ n2565 {Fh 7 [42143744 +131072)  L 0 RDONLY,0x8000}
15:22:53.414274 rx 3342: READ n2565 {Fh 7 [42012672 +131072)  L 0 RDONLY,0x8000}
15:22:53.414787 rx 3346: READ n2565 {Fh 7 [42274816 +131072)  L 0 RDONLY,0x8000}
15:22:53.414806 tx 3336:     OK,  131072b data "\xcb\xd3&lt;\"!-\xa7\xc4"...
15:22:53.414874 rx 3348: GETATTR n1446 {Fh 0}
panic: interface conversion: *fusefrontend_reverse.File is not fs.FileGetattrer: missing method Getattr

goroutine 451 [running]:
github.com/rfjakob/gocryptfs/internal/fusefrontend_reverse.(*Node).Getattr(0xc00034c880, 0x5620579784c0, 0xc000593e60, 0x562057939800, 0xc000218050, 0xc0000fc108, 0x0)
        github.com/rfjakob/gocryptfs/internal/fusefrontend_reverse/node.go:69 +0x273
github.com/hanwen/go-fuse/v2/fs.(*rawBridge).getattr(0xc00011e000, 0x5620579784c0, 0xc000593e60, 0xc00034c880, 0x562057939800, 0xc000218050, 0xc0000fc108, 0xbfded1ef58ba7b13)
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fs/bridge.go:500 +0x2d4
github.com/hanwen/go-fuse/v2/fs.(*rawBridge).GetAttr(0xc00011e000, 0xc0000e0000, 0xc0000fc198, 0xc0000fc108, 0x0)
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fs/bridge.go:488 +0x11c
github.com/hanwen/go-fuse/v2/fuse.doGetAttr(0xc000120000, 0xc0000fc000)
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fuse/opcode.go:287 +0x6f
github.com/hanwen/go-fuse/v2/fuse.(*Server).handleRequest(0xc000120000, 0xc0000fc000, 0xc000000000)
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fuse/server.go:472 +0x2c1
github.com/hanwen/go-fuse/v2/fuse.(*Server).loop(0xc000120000, 0xc000288001)
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fuse/server.go:445 +0x18c
created by github.com/hanwen/go-fuse/v2/fuse.(*Server).readRequest
        github.com/hanwen/go-fuse/v2@v2.0.4-0.20200908172753-0b6cbc515082/fuse/server.go:312 +0x419
</content>
</entry>
<entry>
<title>Drop two more generated files</title>
<updated>2020-10-19T17:27:47+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-19T17:27:47+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=832e58cad4567aa60ce8d390802262c82c5bfba3'/>
<id>urn:sha1:832e58cad4567aa60ce8d390802262c82c5bfba3</id>
<content type='text'>
These were committed by mistake.
</content>
</entry>
<entry>
<title>Drop generated files</title>
<updated>2020-10-19T17:25:47+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-19T17:25:47+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=165bf6c849c4f750157edce9bdc9702c4c7b684d'/>
<id>urn:sha1:165bf6c849c4f750157edce9bdc9702c4c7b684d</id>
<content type='text'>
These were committed by mistake.
</content>
</entry>
<entry>
<title>fusefronted: reject GETXATTR "security.capability"</title>
<updated>2020-10-18T19:07:30+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-18T19:05:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=6697ffd6e213828ff4cd873cd1d104877096a230'/>
<id>urn:sha1:6697ffd6e213828ff4cd873cd1d104877096a230</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>syscallcompat: add getxattr fastpaths</title>
<updated>2020-10-17T22:25:42+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-17T22:25:42+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=c943ed32aaf94a4e60d96c7a513180d29b15a40a'/>
<id>urn:sha1:c943ed32aaf94a4e60d96c7a513180d29b15a40a</id>
<content type='text'>
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 =&gt; 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
</content>
</entry>
<entry>
<title>syscallcompat: add Lgetxattr benchmark</title>
<updated>2020-10-16T18:04:22+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-16T17:59:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=83a324a46bec3332c078abc3a1986969c0f94fd2'/>
<id>urn:sha1:83a324a46bec3332c078abc3a1986969c0f94fd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>v2pai: delete fusefrontend_reverse_v1api</title>
<updated>2020-10-15T21:18:21+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-15T21:18:21+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=fcb28e4ff35e6bc262bfda23f3779ef3a8e7708a'/>
<id>urn:sha1:fcb28e4ff35e6bc262bfda23f3779ef3a8e7708a</id>
<content type='text'>
Served its mission a copy-paste source but can now be deleted.
</content>
</entry>
<entry>
<title>syscallcompat: don't retry Close()</title>
<updated>2020-10-14T11:40:12+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-14T11:40:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ec3eaf0b8776500a9762555eac754b6c893420fd'/>
<id>urn:sha1:ec3eaf0b8776500a9762555eac754b6c893420fd</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>syscallcompat: retry ops on EINTR</title>
<updated>2020-10-13T22:35:16+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-13T22:35:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=af4c1fb7a3f428ff704af22294ad955d05ed41dd'/>
<id>urn:sha1:af4c1fb7a3f428ff704af22294ad955d05ed41dd</id>
<content type='text'>
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 .
</content>
</entry>
<entry>
<title>syscallcompat: Openat: retry on EINTR</title>
<updated>2020-10-10T23:31:09+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-10-10T23:31:09+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=803fdf410bb57d34ef09357ec4924646978c20b5'/>
<id>urn:sha1:803fdf410bb57d34ef09357ec4924646978c20b5</id>
<content type='text'>
Towards fixing https://github.com/rfjakob/gocryptfs/issues/507
</content>
</entry>
</feed>
