blob: 1bbced915e9bf2c195f8e4075bb93dedb4bde2e1 [file] [log] [blame]
khenaidooffe076b2019-01-15 16:08:08 -05001// Copyright 2016 The etcd Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// +build linux
16
17package fileutil
18
19import (
20 "os"
21 "syscall"
22)
23
24// Fsync is a wrapper around file.Sync(). Special handling is needed on darwin platform.
25func Fsync(f *os.File) error {
26 return f.Sync()
27}
28
29// Fdatasync is similar to fsync(), but does not flush modified metadata
30// unless that metadata is needed in order to allow a subsequent data retrieval
31// to be correctly handled.
32func Fdatasync(f *os.File) error {
33 return syscall.Fdatasync(int(f.Fd()))
34}