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 | |
| 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')
| -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 | 
