diff options
author | Jakob Unterwurzacher | 2016-07-03 20:05:32 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-07-03 20:05:32 +0200 |
commit | 79851bf6cc391f1150be387631159d553d5426f3 (patch) | |
tree | 560f3228054ad8a5a37500de5aa21832c021a03e /internal/fusefrontend/fs_dir.go | |
parent | 9b725c15cf50cfb85ec6ec88c47843092775dedc (diff) |
syscallcompat: OSX: add Renamat wrapper
Adds a poor man's renameat implementation for OSX.
Diffstat (limited to 'internal/fusefrontend/fs_dir.go')
-rw-r--r-- | internal/fusefrontend/fs_dir.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/internal/fusefrontend/fs_dir.go b/internal/fusefrontend/fs_dir.go index 4657b95..699ec7b 100644 --- a/internal/fusefrontend/fs_dir.go +++ b/internal/fusefrontend/fs_dir.go @@ -14,6 +14,7 @@ import ( "github.com/rfjakob/gocryptfs/internal/configfile" "github.com/rfjakob/gocryptfs/internal/cryptocore" "github.com/rfjakob/gocryptfs/internal/nametransform" + "github.com/rfjakob/gocryptfs/internal/syscallcompat" "github.com/rfjakob/gocryptfs/internal/tlog" ) @@ -168,7 +169,7 @@ func (fs *FS) Rmdir(path string, context *fuse.Context) (code fuse.Status) { // Protect against concurrent readers. fs.dirIVLock.Lock() defer fs.dirIVLock.Unlock() - err = syscall.Renameat(int(dirfd.Fd()), nametransform.DirIVFilename, + err = syscallcompat.Renameat(int(dirfd.Fd()), nametransform.DirIVFilename, int(parentDirFd.Fd()), tmpName) if err != nil { tlog.Warn.Printf("Rmdir: Renaming %s to %s failed: %v", @@ -182,7 +183,7 @@ func (fs *FS) Rmdir(path string, context *fuse.Context) (code fuse.Status) { if err != nil { // This can happen if another file in the directory was created in the // meantime, undo the rename - err2 := syscall.Renameat(int(parentDirFd.Fd()), tmpName, + err2 := syscallcompat.Renameat(int(parentDirFd.Fd()), tmpName, int(dirfd.Fd()), nametransform.DirIVFilename) if err != nil { tlog.Warn.Printf("Rmdir: Rename rollback failed: %v", err2) |