From c7f1fe301a43604cb2eb9d67f389563e8734016c Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Tue, 1 Sep 2026 22:26:12 +0200 Subject: fusefronted: fix mkdir log message on empty gocryptfs.diriv Before: $ mkdir asd mkdir: cannot create directory ‘asd’: Operation not supported Sep 01 22:24:15 brikett gocryptfs[185344]: go-fuse: can't convert error type: wanted 16 bytes, got 0 After: $ mkdir asdasd mkdir: cannot create directory ‘asdasd’: Input/output error Sep 01 22:25:00 brikett gocryptfs[185784]: prepareAtSyscall: could not read gocryptfs.diriv: wanted 16 bytes, got 0 https://github.com/rfjakob/gocryptfs/issues/1033 --- internal/fusefrontend/node_prepare_syscall.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/fusefrontend/node_prepare_syscall.go b/internal/fusefrontend/node_prepare_syscall.go index 9021350..03194df 100644 --- a/internal/fusefrontend/node_prepare_syscall.go +++ b/internal/fusefrontend/node_prepare_syscall.go @@ -3,6 +3,7 @@ package fusefrontend import ( "syscall" + "github.com/rfjakob/gocryptfs/v2/internal/nametransform" "github.com/rfjakob/gocryptfs/v2/internal/tlog" "github.com/hanwen/go-fuse/v2/fs" @@ -73,8 +74,9 @@ func (n *Node) prepareAtSyscall(child string) (dirfd int, cName string, errno sy var err error iv, err = rn.nameTransform.ReadDirIVAt(dirfd) if err != nil { + tlog.Warn.Printf("prepareAtSyscall: could not read %s: %v", nametransform.DirIVFilename, err) syscall.Close(dirfd) - return -1, "", fs.ToErrno(err) + return -1, "", syscall.EIO } } rn.dirCache.Store(n, dirfd, iv) -- cgit v1.2.3