// +build linux /* * Minio Cloud Storage, (C) 2016 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 cmd import "syscall" // Fallocate uses the linux Fallocate syscall, which helps us to be // sure that subsequent writes on a file just created will not fail, // in addition, file allocation will be contigous on the disk func Fallocate(fd int, offset int64, len int64) error { // No need to attempt fallocate for 0 length. if len == 0 { return nil } // Don't extend size of file even if offset + len is // greater than file size from . fallocFLKeepSize := uint32(1) return syscall.Fallocate(fd, fallocFLKeepSize, offset, len) }