From de4421d6a3e7f48f42595df89bb76b3e67f8101d Mon Sep 17 00:00:00 2001 From: Daniel Jakots Date: Mon, 1 Feb 2021 12:48:49 -0500 Subject: [PATCH] fix: build on OpenBSD (#11384) github.com/ncw/directio doesn't support OpenBSD, but OpenBSD has syscall.Fsync. (It also has fdatasync: https://man.openbsd.org/fdatasync but apparently Golang can't call it). --- pkg/disk/directio_unsupported.go | 7 +------ pkg/disk/fdatasync_unsupported.go | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 pkg/disk/fdatasync_unsupported.go diff --git a/pkg/disk/directio_unsupported.go b/pkg/disk/directio_unsupported.go index 7241f4560..d44f033a9 100644 --- a/pkg/disk/directio_unsupported.go +++ b/pkg/disk/directio_unsupported.go @@ -1,4 +1,4 @@ -// +build !linux,!netbsd,!freebsd,!darwin,!openbsd +// +build !linux,!netbsd,!freebsd,!darwin /* * Minio Cloud Storage, (C) 2019-2020 Minio, Inc. @@ -62,8 +62,3 @@ func DisableDirectIO(f *os.File) error { func AlignedBlock(BlockSize int) []byte { return make([]byte, BlockSize) } - -// Fdatasync is a no-op -func Fdatasync(f *os.File) error { - return nil -} diff --git a/pkg/disk/fdatasync_unsupported.go b/pkg/disk/fdatasync_unsupported.go new file mode 100644 index 000000000..e215286ef --- /dev/null +++ b/pkg/disk/fdatasync_unsupported.go @@ -0,0 +1,28 @@ +// +build !linux,!netbsd,!freebsd,!darwin,!openbsd + +/* + * Minio Cloud Storage, (C) 2020 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package disk + +import ( + "os" +) + +// Fdatasync is a no-op +func Fdatasync(f *os.File) error { + return nil +}