macos: fix O_DIRECT build failure
O_DIRECT has no direct equivalent on MacOS (check out https://github.com/libuv/libuv/issues/1600 for details). Just define it to zero there.
This commit is contained in:
parent
f6a3e2c7d1
commit
53f7e1a0f0
@ -105,7 +105,7 @@ func (fs *FS) mangleOpenFlags(flags uint32) (newFlags int) {
|
||||
// crypto header, alignment will be off, even if userspace makes aligned
|
||||
// accesses. Running xfstests generic/013 on ext4 used to trigger lots of
|
||||
// EINVAL errors due to missing alignment. Just fall back to buffered IO.
|
||||
newFlags = newFlags &^ syscall.O_DIRECT
|
||||
newFlags = newFlags &^ syscallcompat.O_DIRECT
|
||||
|
||||
return newFlags
|
||||
}
|
||||
|
@ -9,6 +9,10 @@ import (
|
||||
"github.com/hanwen/go-fuse/fuse"
|
||||
)
|
||||
|
||||
// O_DIRECT means oncached I/O on Linux. No direct equivalent on MacOS and defined
|
||||
// to zero there.
|
||||
const O_DIRECT = 0
|
||||
|
||||
// Sorry, fallocate is not available on OSX at all and
|
||||
// fcntl F_PREALLOCATE is not accessible from Go.
|
||||
// See https://github.com/rfjakob/gocryptfs/issues/18 if you want to help.
|
||||
|
@ -14,6 +14,10 @@ import (
|
||||
|
||||
const _FALLOC_FL_KEEP_SIZE = 0x01
|
||||
|
||||
// O_DIRECT means oncached I/O on Linux. No direct equivalent on MacOS and defined
|
||||
// to zero there.
|
||||
const O_DIRECT = syscall.O_DIRECT
|
||||
|
||||
var preallocWarn sync.Once
|
||||
|
||||
// EnospcPrealloc preallocates ciphertext space without changing the file
|
||||
|
Loading…
Reference in New Issue
Block a user