From 1ced0b192e6abcb047af0b9f11dfaf63052598c4 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 26 Dec 2018 22:12:55 +0100 Subject: [PATCH] fusefrontend: Don't treat Fchownat error as failure in Mkdir. The directory was already created, so return success even if Fchownat fails. The same error handling is already used if fs.args.PlaintextNames is false. --- internal/fusefrontend/fs_dir.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/fusefrontend/fs_dir.go b/internal/fusefrontend/fs_dir.go index caf05e7..963a551 100644 --- a/internal/fusefrontend/fs_dir.go +++ b/internal/fusefrontend/fs_dir.go @@ -61,6 +61,9 @@ func (fs *FS) Mkdir(newPath string, mode uint32, context *fuse.Context) (code fu defer syscall.Close(dirfd) if fs.args.PlaintextNames { err = syscallcompat.Mkdirat(dirfd, cName, mode) + if err != nil { + return fuse.ToStatus(err) + } // Set owner if fs.args.PreserveOwner { err = syscallcompat.Fchownat(dirfd, cName, int(context.Owner.Uid), @@ -69,7 +72,7 @@ func (fs *FS) Mkdir(newPath string, mode uint32, context *fuse.Context) (code fu tlog.Warn.Printf("Mkdir: Fchownat failed: %v", err) } } - return fuse.ToStatus(err) + return fuse.OK } // We need write and execute permissions to create gocryptfs.diriv