<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/fusefrontend/file.go, branch dependabot/github_actions/actions/setup-go-7</title>
<subtitle>Mirror of gocryptfs source code on Github</subtitle>
<id>http://nuetzlich.net/cgit/gocryptfs/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-go-7</id>
<link rel='self' href='http://nuetzlich.net/cgit/gocryptfs/atom?h=dependabot%2Fgithub_actions%2Factions%2Fsetup-go-7'/>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/'/>
<updated>2026-07-16T20:07:54+00:00</updated>
<entry>
<title>fusefrontend: sharedstorage: add two missing unlocks</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T18:34:11+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=bb68ca2aa7da9e166dca45979ff9932e05248370'/>
<id>urn:sha1:bb68ca2aa7da9e166dca45979ff9932e05248370</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: introduce UnlockSharedStorage helper</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T18:32:51+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a95d6ac5818a749db67d34bcbe9a358d403b6a6e'/>
<id>urn:sha1:a95d6ac5818a749db67d34bcbe9a358d403b6a6e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: lock truncate agains concurrent access</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2024-12-30T11:08:41+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=29000177b94c6c9aaab97b3f3d8ed5123ed7cf44'/>
<id>urn:sha1:29000177b94c6c9aaab97b3f3d8ed5123ed7cf44</id>
<content type='text'>
Prevent reads and writes concurrent with the truncate operation. It's
racy on tmpfs and ext4 ( https://lore.kernel.org/all/18e9fa0f-ec31-9107-459c-ae1694503f87@gmail.com/t/ )
as evident by TestOpenTruncate test failures:

  === RUN   TestOpenTruncate
      cluster_test.go:209: POSIX compliance issue: non-exlusive create failed with err=file exists
  doRead 16384215: corrupt block #0: cipher: message authentication failed
  ino16384215 fh8: RMW read failed: errno=5
      cluster_test.go:214: iteration 1: WriteAt: write /tmp/gocryptfs-test-parent-1026/1358464214/TestOpenTruncate.1788296708.mnt2/foo: input/output error
  --- FAIL: TestOpenTruncate (0.06s)
  FAIL
  exit status 1
  FAIL	github.com/rfjakob/gocryptfs/v2/tests/cluster	7.880s

Relates-to: https://github.com/rfjakob/gocryptfs/issues/56
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: add warnings for lock failure</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-19T11:35:29+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=836f4fc356ae860d8d3a323ada0bb0d71ed102bc'/>
<id>urn:sha1:836f4fc356ae860d8d3a323ada0bb0d71ed102bc</id>
<content type='text'>
Complain loudly when the underlying storage does not support
byte-range locks.

https://github.com/rfjakob/gocryptfs/issues/754
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: retry read-path on EIO error</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-19T11:26:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=fbbc8aa8c077b31fdf0e14dc73a1bb4a3705f5a3'/>
<id>urn:sha1:fbbc8aa8c077b31fdf0e14dc73a1bb4a3705f5a3</id>
<content type='text'>
With -sharedstorage, when we get a decryption error, we lock the
byte range and try again.

This makes concurrent R/W safe agains torn writes.

https://github.com/rfjakob/gocryptfs/issues/754
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: add file content byte-range locks</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-09T12:34:20+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=2a2f0b376bbd0fc1f737c79cd2e2aab7749a5c6b'/>
<id>urn:sha1:2a2f0b376bbd0fc1f737c79cd2e2aab7749a5c6b</id>
<content type='text'>
As we must write complete ciphertext blocks (except at EOF), non-overlapping
plaintext writes can overlap in the ciphertext.
And because overlapping writes can turn the data into data soup (see
TestPoCTornWrite) we serialize them using fcntl locking.
</content>
</entry>
<entry>
<title>fusefrontend: sharedstorage: use byte-range lock on file header creation</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2023-06-02T12:24:44+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b499d38b23f209eb49cbc37d3acd2f9444f5654f'/>
<id>urn:sha1:b499d38b23f209eb49cbc37d3acd2f9444f5654f</id>
<content type='text'>
Multiple host writing to the same empty file at the same time
could have overwritten each other's newly created file header,
leading to data corruption.

Fix the race by placing a byte-range lock on the file when
creating the file header.
</content>
</entry>
<entry>
<title>syscallcompat: DetectQuirks: suppress Btrfs message when -noprealloc has been passed</title>
<updated>2026-02-01T19:05:13+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-02-01T19:05:13+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ed5f8487b15f1d9cd83b4b0a4220271b6c5f189e'/>
<id>urn:sha1:ed5f8487b15f1d9cd83b4b0a4220271b6c5f189e</id>
<content type='text'>
Reported by @Tunoac, https://github.com/rfjakob/gocryptfs/issues/395#issuecomment-3828507487
</content>
</entry>
<entry>
<title>fusefronted: report correct directory size in fstat</title>
<updated>2025-08-03T19:25:24+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-08-03T19:22:10+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ddcc7405e68e6be2cce02dddde3fa6e019c62951'/>
<id>urn:sha1:ddcc7405e68e6be2cce02dddde3fa6e019c62951</id>
<content type='text'>
Fixes https://github.com/rfjakob/gocryptfs/issues/951
</content>
</entry>
<entry>
<title>remove redundant contentEnc reference from file</title>
<updated>2025-07-10T18:06:34+00:00</updated>
<author>
<name>Lars Quentin</name>
</author>
<published>2025-07-10T14:33:26+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=844f339befe67a3f8573f98c23559fd7c1a6e507'/>
<id>urn:sha1:844f339befe67a3f8573f98c23559fd7c1a6e507</id>
<content type='text'>
</content>
</entry>
</feed>
