<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gocryptfs/internal/fusefrontend/file_allocate_truncate.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>2025-07-10T18:06:34+00:00</updated>
<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>
<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>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>v2api: rename "File2" to just "File"</title>
<updated>2020-08-16T10:50:33+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-08-16T10:48:16+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ee5ab1cc29c6f5ff6061a88b742d5ff88de40802'/>
<id>urn:sha1:ee5ab1cc29c6f5ff6061a88b742d5ff88de40802</id>
<content type='text'>
Rename the symbols and the files.
</content>
</entry>
<entry>
<title>v2api: delete (most) fusefrontend v1 files</title>
<updated>2020-07-26T16:35:12+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-07-26T16:35:12+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=777b95f82ffea8a25b95089343b07b29378110da'/>
<id>urn:sha1:777b95f82ffea8a25b95089343b07b29378110da</id>
<content type='text'>
All the functionality in these files has been reimplemented
for the v2 api. Drop the old files.
</content>
</entry>
<entry>
<title>Update go-fuse import path to github.com/hanwen/go-fuse/v2</title>
<updated>2020-05-17T12:23:47+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2020-05-17T12:18:23+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=ec74d1d2f4217a9a337d1db9902f32ae2aecaf33'/>
<id>urn:sha1:ec74d1d2f4217a9a337d1db9902f32ae2aecaf33</id>
<content type='text'>
We need
https://github.com/hanwen/go-fuse/commit/fd7328faf9fdf75709f7ba7df7072aaf4eeb18b3
to fix a crash reported in https://github.com/rfjakob/gocryptfs/issues/430 :

  2019/10/30 17:14:16 Unknown opcode 2016
  panic: runtime error: invalid memory address or nil pointer dereference
  [signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x508d38]

This patch is only in the v2.x.x branch. Upgrade to v2, as the
old API is also supported there.

Running

  git grep hanwen/go-fuse | grep -v hanwen/go-fuse/v2

to check for forgotten references comes back clean.
</content>
</entry>
<entry>
<title>fusefrontend: Fix computation of cipherSz in Allocate FUSE call.</title>
<updated>2019-01-06T19:56:59+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2019-01-04T03:06:54+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=40d2427fd7f788262dc3bf220f789b7bd5fe781b'/>
<id>urn:sha1:40d2427fd7f788262dc3bf220f789b7bd5fe781b</id>
<content type='text'>
Do not use PlainSizeToCipherSize() since this adds the 18 bytes file header.

Partially fixes https://github.com/rfjakob/gocryptfs/issues/311
</content>
</entry>
<entry>
<title>fusefrontend: Allow to create sparse file of size 4096.</title>
<updated>2019-01-04T00:38:47+00:00</updated>
<author>
<name>Sebastian Lackner</name>
</author>
<published>2019-01-03T21:00:36+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=acf7e52022fcf67a9db58bda59efc2e932e8892d'/>
<id>urn:sha1:acf7e52022fcf67a9db58bda59efc2e932e8892d</id>
<content type='text'>
When the old size is zero, there are no existing blocks to merge the
new data with. Directly use Ftruncate if the size is block-aligned.

Fixes https://github.com/rfjakob/gocryptfs/issues/305
</content>
</entry>
<entry>
<title>fusefrontend: truncateGrowFile: pass zeroPad error to caller</title>
<updated>2018-08-15T15:25:22+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-08-15T15:14:24+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=dbd400d930ccd790c2918f6382c0efaeb353c282'/>
<id>urn:sha1:dbd400d930ccd790c2918f6382c0efaeb353c282</id>
<content type='text'>
Errors from zeroPad were ignored until now, as discovered
using xfstests generic/083.
</content>
</entry>
<entry>
<title>fusefronted: disallow writes running concurrently with reads</title>
<updated>2018-07-22T20:29:22+00:00</updated>
<author>
<name>Jakob Unterwurzacher</name>
</author>
<published>2018-07-22T20:29:22+00:00</published>
<link rel='alternate' type='text/html' href='http://nuetzlich.net/cgit/gocryptfs/commit/?id=f316f1b2df47dca651174e574ab072f6b46c0b01'/>
<id>urn:sha1:f316f1b2df47dca651174e574ab072f6b46c0b01</id>
<content type='text'>
As uncovered by xfstests generic/465, concurrent reads and writes
could lead to this,

  doRead 3015532: corrupt block #1039: stupidgcm: message authentication failed,

as the read could pick up a block that has not yet been completely written -
write() is not atomic!

Now writes take ContentLock exclusively, while reads take it shared,
meaning that multiple reads can run in parallel with each other, but
not with a write.

This also simplifies the file header locking.
</content>
</entry>
</feed>
