mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
pkg/fileutil: fall back to truncate() if fallocate is interrupted
Fixes #5558
This commit is contained in:
parent
c093234e3a
commit
54aac4ab7e
@ -26,8 +26,9 @@ func preallocExtend(f *os.File, sizeInBytes int64) error {
|
||||
err := syscall.Fallocate(int(f.Fd()), 0, 0, sizeInBytes)
|
||||
if err != nil {
|
||||
errno, ok := err.(syscall.Errno)
|
||||
// treat not support as nil error
|
||||
if ok && errno == syscall.ENOTSUP {
|
||||
// not supported; fallback
|
||||
// fallocate EINTRs frequently in some enviroments; fallback
|
||||
if ok && (errno == syscall.ENOTSUP || errno == syscall.EINTR) {
|
||||
return preallocExtendTrunc(f, sizeInBytes)
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user