<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/tests/defaults/main_test.go, branch unlinked_fsync</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=unlinked_fsync</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=unlinked_fsync'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-08-30T20:49:34+00:00</updated>
<entry>
<title>fusefrontend: take ContentLock for truncate through node.Setattr</title>
<updated>2026-08-30T20:49:34+00:00</updated>
<author>
<name>max</name>
</author>
<published>2026-08-17T01:15:41+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=9c2130d6c2e54c45c6787fbc49a896a8544a5e47'/>
<id>urn:sha1:9c2130d6c2e54c45c6787fbc49a896a8544a5e47</id>
<content type='text'>
node.Setattr opens its own file handle and called truncate directly,
without ContentLock. truncate ends in doWrite, which documents that the
caller holds that lock, and file.Setattr and Allocate both take it.

Besides leaving a path truncate unserialized against concurrent writes,
this skipped the write-operation counter that ContentLock.Lock()
increments. isConsecutiveWrite() reads that counter to notice foreign
modifications, so an already-open handle kept assuming its next write
appends, skipped writePadHole() and grew the file past a short last
block. That block no longer decrypted, and every later operation on the
file failed with EIO.

Fixes #1024
</content>
</entry>
<entry>
<title>Fix a bunch of staticcheck errors</title>
<updated>2025-07-07T17:59:35+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-07-07T17:54:48+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=8f5df19b353e02ffba842fd1b15ccf93da7ee3b4'/>
<id>urn:sha1:8f5df19b353e02ffba842fd1b15ccf93da7ee3b4</id>
<content type='text'>
Tool-assisted.
</content>
</entry>
<entry>
<title>darwin: tests/defaults: fix unix.Getdents build failure</title>
<updated>2025-04-26T09:27:58+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-04-26T09:27:27+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=7901dc91e1125aa90c7fbd547d5f80eedfeed8ec'/>
<id>urn:sha1:7901dc91e1125aa90c7fbd547d5f80eedfeed8ec</id>
<content type='text'>
Error was:

+ go test -c -tags without_openssl -o /dev/null github.com/rfjakob/gocryptfs/v2/tests/defaults
Error: tests/defaults/main_test.go:532:17: undefined: unix.Getdents
Error: tests/defaults/main_test.go:538:16: undefined: unix.Getdents
Error: tests/defaults/main_test.go:549:16: undefined: unix.Getdents
</content>
</entry>
<entry>
<title>tests: add TestSeekDir</title>
<updated>2025-04-19T20:51:52+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-03-26T22:29:21+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=83e587f4b1803d17e2e9fd0b3860dc9f24117acc'/>
<id>urn:sha1:83e587f4b1803d17e2e9fd0b3860dc9f24117acc</id>
<content type='text'>
Acc. to the commit message,
https://github.com/hanwen/go-fuse/commit/0d1228a39dd49c83c8b7c30dec7928f5d7d84cc0
break seeking in directories. This commit appears in go-fuse v2.6.0.
</content>
</entry>
<entry>
<title>make format</title>
<updated>2022-12-29T14:00:37+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-12-29T14:00:24+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=856ccaac10579abda5620dfc86ad6031b1076a43'/>
<id>urn:sha1:856ccaac10579abda5620dfc86ad6031b1076a43</id>
<content type='text'>
Run "make format" using
go version go1.19.4 linux/amd64
</content>
</entry>
<entry>
<title>fusefrontend: fix -force_owner not affecting MKNOD</title>
<updated>2022-01-10T19:05:36+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-01-10T19:05:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=5f955423b736d56b5b741fbd1b853c83044aa0fe'/>
<id>urn:sha1:5f955423b736d56b5b741fbd1b853c83044aa0fe</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/629
</content>
</entry>
<entry>
<title>tests: improve SEEK_DATA test for MacOS</title>
<updated>2022-01-04T14:21:20+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-01-04T14:21:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=700ae685cc7cb99b396caeaeee4e39eeac20f1c7'/>
<id>urn:sha1:700ae685cc7cb99b396caeaeee4e39eeac20f1c7</id>
<content type='text'>
(1)

Create a 1 GiB file instead of 1 TiB, because
apparently, on MacOS, the file (sometimes?) is not
created sparse, and fills up users' disks:

https://github.com/rfjakob/gocryptfs/issues/625

(2)

On darwin, SEEK_DATA is not the same as on Linux
( https://github.com/golang/go/commit/2f8b555de27198775f9606e001ef19b76efdb415 )
so use the value provided by the unix package.
</content>
</entry>
<entry>
<title>tests: convert Creat() calls to Open()</title>
<updated>2021-12-08T17:49:21+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-12-08T17:49:21+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=7d60315cd53080e223051a4f16eb3ace3b86e095'/>
<id>urn:sha1:7d60315cd53080e223051a4f16eb3ace3b86e095</id>
<content type='text'>
Creat() is equivalent to Open(..., O_CREAT|O_WRONLY|O_TRUNC, ...)
and MacOS does not have syscall.Creat().

https://github.com/rfjakob/gocryptfs/issues/623
</content>
</entry>
<entry>
<title>tests: add TestForceOwner</title>
<updated>2021-10-15T15:35:12+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-10-15T15:29:03+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=3b881b01744992da138f7f72390776c65782bcc2'/>
<id>urn:sha1:3b881b01744992da138f7f72390776c65782bcc2</id>
<content type='text'>
https://github.com/rfjakob/gocryptfs/issues/609
https://github.com/rfjakob/gocryptfs/pull/610
</content>
</entry>
<entry>
<title>Unbreak hyperlinks broken by go mod v2 conversion</title>
<updated>2021-08-30T09:31:01+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2021-08-30T09:31:01+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=34d8a498c4899b1493f7bea16c22486d6725c9b1'/>
<id>urn:sha1:34d8a498c4899b1493f7bea16c22486d6725c9b1</id>
<content type='text'>
Commit

  69d88505fd7f4cb0d9e4f1918de296342fe05858 go mod: declare module version v2

translated all instances of "github.com/rfjakob/gocryptfs/" to
"github.com/rfjakob/gocryptfs/v2/".

Unfortunately, this included hyperlinks.

Unbreak the hyperlinks like this:

  find . -name \*.go | xargs sed -i s%https://github.com/rfjakob/gocryptfs/v2/%https://github.com/rfjakob/gocryptfs/v2/%
</content>
</entry>
</feed>
