diff options
author | Jakob Unterwurzacher | 2025-10-02 21:36:23 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2025-10-02 21:42:39 +0200 |
commit | 8b33c0d6763f25be4ee5f100bbb1c67f7d485ee4 (patch) | |
tree | ae7e6b5d66653b06bb73562fa6364094cb4f4ec2 | |
parent | 6651f9a761f15d5d9b1be15d47dadbe4bb424665 (diff) |
Fixes https://github.com/rfjakob/gocryptfs/issues/964
-rw-r--r-- | internal/fusefrontend/node_dir_ops.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/internal/fusefrontend/node_dir_ops.go b/internal/fusefrontend/node_dir_ops.go index 11ff83d..97327ce 100644 --- a/internal/fusefrontend/node_dir_ops.go +++ b/internal/fusefrontend/node_dir_ops.go @@ -136,12 +136,6 @@ func (n *Node) Mkdir(ctx context.Context, name string, mode uint32, out *fuse.En } defer syscall.Close(fd) - err = syscall.Fstat(fd, &st) - if err != nil { - tlog.Warn.Printf("Mkdir %q: Fstat failed: %v", cName, err) - return nil, fs.ToErrno(err) - } - // Fix permissions if origMode != mode { // Preserve SGID bit if it was set due to inheritance. @@ -150,7 +144,12 @@ func (n *Node) Mkdir(ctx context.Context, name string, mode uint32, out *fuse.En if err != nil { tlog.Warn.Printf("Mkdir %q: Fchmod %#o -> %#o failed: %v", cName, mode, origMode, err) } + } + err = syscall.Fstat(fd, &st) + if err != nil { + tlog.Warn.Printf("Mkdir %q: Fstat failed: %v", cName, err) + return nil, fs.ToErrno(err) } // Create child node & return |