diff options
author | Sebastian Lackner | 2018-12-26 22:12:55 +0100 |
---|---|---|
committer | rfjakob | 2018-12-27 15:16:00 +0100 |
commit | 1ced0b192e6abcb047af0b9f11dfaf63052598c4 (patch) | |
tree | cb097a21ebc4af17c74cea1b4a35fcd91108741d /internal/fusefrontend/fs_dir.go | |
parent | 5918884926bf7a4e77b922a2ce6f89e744935cb9 (diff) |
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.
Diffstat (limited to 'internal/fusefrontend/fs_dir.go')
-rw-r--r-- | internal/fusefrontend/fs_dir.go | 5 |
1 files changed, 4 insertions, 1 deletions
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 |