// Copyright 2016 The etcd Authors//// 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.// +build linuxpackage fileutilimport ()func preallocExtend( *os.File, int64) error {// use mode = 0 to change size := syscall.Fallocate(int(.Fd()), 0, 0, )if != nil { , := .(syscall.Errno)// not supported; fallback // fallocate EINTRs frequently in some environments; fallbackif && ( == syscall.ENOTSUP || == syscall.EINTR) {returnpreallocExtendTrunc(, ) } }return}func preallocFixed( *os.File, int64) error {// use mode = 1 to keep size; see FALLOC_FL_KEEP_SIZE := syscall.Fallocate(int(.Fd()), 1, 0, )if != nil { , := .(syscall.Errno)// treat not supported as nil errorif && == syscall.ENOTSUP {returnnil } }return}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.