<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/syscallcompat/sys_linux.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-07-22T19:57:57+00:00</updated>
<entry>
<title>fusefrontend: expose birth time via statx</title>
<updated>2026-07-22T19:57:57+00:00</updated>
<author>
<name>Marios Titas</name>
</author>
<published>2026-07-21T17:27:38+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=790362e8f8eabd1bdf75f98328daf94cf623c600'/>
<id>urn:sha1:790362e8f8eabd1bdf75f98328daf94cf623c600</id>
<content type='text'>
Forward the backing filesystem's STATX_BTIME on Linux while preserving
existing metadata translations and fallback behavior.

On Linux 6.6 and newer, this allows statx consumers such as GNU stat
to report birth time when the backing filesystem provides it. Older
kernels and backing filesystems without birth-time support retain the
existing behavior. No on-disk format change or migration is required.

Reverse mode remains unchanged.

Fixes #868.

Related context: #732
</content>
</entry>
<entry>
<title>fusefrontend: LockSharedStorage: loop on EINTR, add debug output</title>
<updated>2026-07-16T20:07:54+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-07-16T18:47:57+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b89f0dc94bd83857b187a84a0d4ae127000f0b1c'/>
<id>urn:sha1:b89f0dc94bd83857b187a84a0d4ae127000f0b1c</id>
<content type='text'>
</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>Added basic support for FreeBSD.</title>
<updated>2026-03-08T20:35:59+00:00</updated>
<author>
<name>Ankush Patel</name>
</author>
<published>2026-02-05T01:42:40+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=4fa21dcb57c5a0b7761bfec606ffd0e94c293ce8'/>
<id>urn:sha1:4fa21dcb57c5a0b7761bfec606ffd0e94c293ce8</id>
<content type='text'>
Freebsd-support: Change bash shebang to use /usr/bin/env

Freebsd-support: Fix go vet "undefined" fixes when running make ci

freebsd: stub xattr functions

/proc/PID/fd does not exist on freebsd.

freebsd-support: modify FchmodatNofollow for FreeBSD

FreeBSD supports the Fchmodat system call, with the AT_SYMLINK_NOFOLLOW
flag. FchmodatNofollow has been modified to use this system call and
flag.

freebsd-support: PR changes and fixes

* Functions in fusefrontend_reverse/node_xattr_freebsd.go have been
  stubbed for now.

* asuser_freebsd.go updated to only run f() when context is nil;
  otherwise log a warning and return an error.

* emulate.go build flags updated, and FreeBSD specific version added.

* sys_freebsd.go bug in Renameat2 with RENAME_EXCHANGE flag fixed.
  FreeBSD does not support atomic file swapping, so this flag now
  returns an error.

* unix2syscall and atime is identical between FreeBSD and Darwin,
  updated filenames so Go will build the file for FreeBSD and Mac OS.

freebsd-support: Addressed more PR comments and fixed build tags
</content>
</entry>
<entry>
<title>darwin: syscallcompat: Openat: use O_SYMLINK</title>
<updated>2026-02-09T20:20:13+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2026-02-07T20:19:14+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=d22d6b3c69f95ed0034af04851807e7125811b87'/>
<id>urn:sha1:d22d6b3c69f95ed0034af04851807e7125811b87</id>
<content type='text'>
Also add tests that opening a symlink (using unix.O_PATH | unix.O_NOFOLLOW)
works.

https://github.com/rfjakob/gocryptfs/issues/993
</content>
</entry>
<entry>
<title>Fix all staticcheck errors in gocryptfs codebase</title>
<updated>2025-07-08T17:54:14+00:00</updated>
<author>
<name>copilot-swe-agent[bot]</name>
</author>
<published>2025-07-07T18:18:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=386232f39ede046d6453a0990ad40f2d86a26f53'/>
<id>urn:sha1:386232f39ede046d6453a0990ad40f2d86a26f53</id>
<content type='text'>
Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Add staticcheck to test.bash for continuous static analysis

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Fix nil pointer dereference in timesToTimespec function

The previous fix for deprecated fuse.UtimeToTimespec caused a panic
because unix.TimeToTimespec doesn't handle nil pointers. This fix
properly handles nil pointers by using unix.UTIME_OMIT while still
using the non-deprecated unix.TimeToTimespec function.

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;

Undo SA6002 changes and add staticcheck ignore directive instead

Co-authored-by: rfjakob &lt;286847+rfjakob@users.noreply.github.com&gt;
</content>
</entry>
<entry>
<title>syscallcompat: move getSupplementaryGroups to suser_linux.go</title>
<updated>2025-02-26T20:28:07+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-02-26T20:28:07+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=a540b0ea1bf5e9742773784600033bcb466e8a04'/>
<id>urn:sha1:a540b0ea1bf5e9742773784600033bcb466e8a04</id>
<content type='text'>
It's only used there, so move it.
</content>
</entry>
<entry>
<title>syscallcompat: add asUser for darwin and make OpenatUser and friends shared</title>
<updated>2025-02-26T20:27:29+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-02-26T20:12:56+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=22cd9cf174e8a93787b01f6dd7b09247f9642286'/>
<id>urn:sha1:22cd9cf174e8a93787b01f6dd7b09247f9642286</id>
<content type='text'>
</content>
</entry>
<entry>
<title>syscallcompat: move asUser to its own file</title>
<updated>2025-02-26T20:11:56+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2025-02-26T19:55:07+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=49d797effbc0888975c51ac45371d91fc59ea2dc'/>
<id>urn:sha1:49d797effbc0888975c51ac45371d91fc59ea2dc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fusefrontend: support RENAME_WHITEOUT, RENAME_EXCHANGE</title>
<updated>2022-01-22T11:28:27+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2022-01-22T11:28:27+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=b7cac4ffd07733ab6bcd0d33345de3306a8a5a59'/>
<id>urn:sha1:b7cac4ffd07733ab6bcd0d33345de3306a8a5a59</id>
<content type='text'>
Both new internal test and xfstests generic/013 are happy.

https://github.com/rfjakob/gocryptfs/issues/641
</content>
</entry>
</feed>
