...

Source file src/gitlab.com/tslocum/preallocate/preallocate_linux.go

Documentation: gitlab.com/tslocum/preallocate

     1  // +build linux
     2  
     3  package preallocate
     4  
     5  import (
     6  	"os"
     7  
     8  	"github.com/pkg/errors"
     9  	"golang.org/x/sys/unix"
    10  )
    11  
    12  func preallocFile(file *os.File, size int64) error {
    13  	fd := file.Fd()
    14  	if fd == 0 {
    15  		return errors.New("invalid file descriptor")
    16  	}
    17  
    18  	err := unix.Fallocate(int(fd), 0, 0, size)
    19  	if err != nil {
    20  		// Filesystem does not support fallocate
    21  
    22  		return WriteSeeker(file, size)
    23  	}
    24  
    25  	return nil
    26  }
    27  

View as plain text