sftpgo-mirror/vfs/sys_unix.go
Nicola Murino e1bf46c6a5
local fs rename: if it fails with a cross device error try a copy
I don't want to add a new setting for this, at least until we get the
first complain for a slow rename :)

Fixes #440
2021-05-27 20:14:12 +02:00

36 lines
505 B
Go

// +build !windows
package vfs
import (
"errors"
"os"
"syscall"
"golang.org/x/sys/unix"
)
var (
defaultUID, defaultGID int
)
func init() {
defaultUID = os.Getuid()
defaultGID = os.Getuid()
if defaultUID < 0 {
defaultUID = 65534
}
if defaultGID < 0 {
defaultGID = 65534
}
}
func (fi FileInfo) getFileInfoSys() interface{} {
return &syscall.Stat_t{
Uid: uint32(defaultUID),
Gid: uint32(defaultGID)}
}
func isCrossDeviceError(err error) bool {
return errors.Is(err, unix.EXDEV)
}