<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/fusefrontend_reverse/node.go, branch xattr_user_buffer</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=xattr_user_buffer'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2024-08-23T20:32:46+00:00</updated>
<entry>
<title>reverse: fix force_owner</title>
<updated>2024-08-23T20:32:46+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2024-08-23T20:32:46+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=f665be1178c72a4768e82bccdfa073a0cf309215'/>
<id>urn:sha1:f665be1178c72a4768e82bccdfa073a0cf309215</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/809
</content>
</entry>
<entry>
<title>reverse: use unique generation number for all nodes</title>
<updated>2024-05-01T20:26:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2024-05-01T20:26:37+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ed0a12b7337c2d88c027329f64e73070da17d5b3'/>
<id>urn:sha1:ed0a12b7337c2d88c027329f64e73070da17d5b3</id>
<content type='text'>
We used to present gocryptfs.longname.*.name files for hardlinked
files as hardlinked to the kernel (same Node ID) which is wrong.

Fix this by using a unique generation number for all nodes, which
also fixes possible issues with inode reuse.

Basically what 1bc1db620b061aabf59469a5eb4fb60e3e1701a3 did
for forward mode with -sharedstorage.

Fixes https://github.com/rfjakob/gocryptfs/issues/802
</content>
</entry>
<entry>
<title>go mod: declare module version v2</title>
<updated>2021-08-23T13:05:15+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-23T13:05:15+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=69d88505fd7f4cb0d9e4f1918de296342fe05858'/>
<id>urn:sha1:69d88505fd7f4cb0d9e4f1918de296342fe05858</id>
<content type='text'>
Our git version is v2+ for some time now, but go.mod
still declared v1. Hopefully making both match makes
https://pkg.go.dev/github.com/rfjakob/gocryptfs/v2 work.

All the import paths have been fixed like this:

  find . -name \*.go | xargs sed -i s%github.com/rfjakob/gocryptfs/%github.com/rfjakob/gocryptfs/v2/%
</content>
</entry>
<entry>
<title>reverse mode: implement -one-file-system</title>
<updated>2021-08-16T17:23:58+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-16T16:40:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b2724070d95234a8cd281f275211e0f827a8bbe1'/>
<id>urn:sha1:b2724070d95234a8cd281f275211e0f827a8bbe1</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/475
</content>
</entry>
<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>v2api/reverse: implement Statfs</title>
<updated>2020-08-16T17:41:00+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-16T17:41:00+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=58a2726977a1b1f92063a1e51c0769af71833e72'/>
<id>urn:sha1:58a2726977a1b1f92063a1e51c0769af71833e72</id>
<content type='text'>
</content>
</entry>
<entry>
<title>v2api/reverse: finish -exclude</title>
<updated>2020-08-15T15:31:45+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-15T15:31:25+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=94e8fc12ea5756a130e7ac9ed67ddd519b5f3a22'/>
<id>urn:sha1:94e8fc12ea5756a130e7ac9ed67ddd519b5f3a22</id>
<content type='text'>
Tests pass now.
</content>
</entry>
<entry>
<title>v2api/reverse: implement Read</title>
<updated>2020-08-09T20:11:46+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-09T20:11:46+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=6d4f1a6888cafd218cb97bd11de6a7553d9bc8f1'/>
<id>urn:sha1:6d4f1a6888cafd218cb97bd11de6a7553d9bc8f1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>v2api/reverse: implement Readlink</title>
<updated>2020-08-08T16:45:47+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-08T16:45:47+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=527609266386890fe1657c225c643ca448bcd71d'/>
<id>urn:sha1:527609266386890fe1657c225c643ca448bcd71d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>v2api/reverse: implement Lookup for longname</title>
<updated>2020-08-02T17:33:12+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-02T17:33:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=84ed139cd2cede9b773fe7892a0bc2515fc1f00f'/>
<id>urn:sha1:84ed139cd2cede9b773fe7892a0bc2515fc1f00f</id>
<content type='text'>
</content>
</entry>
</feed>
