cursor: posix_fallocate may fail with EINVAL if not supported
ZFS on FreeBSD >= 12.0 returns EINVAL, see https://svnweb.freebsd.org/changeset/base/325320 Signed-off-by: Jan Beich <jbeich@FreeBSD.org>
This commit is contained in:
parent
0fc00fff30
commit
1283d54dac
|
@ -157,13 +157,13 @@ os_create_anonymous_file(off_t size)
|
|||
|
||||
#ifdef HAVE_POSIX_FALLOCATE
|
||||
/*
|
||||
* Filesystems that do support fallocate will return EOPNOTSUPP.
|
||||
* In this case we need to fall back to ftruncate
|
||||
* Filesystems that do support fallocate will return EINVAL or
|
||||
* EOPNOTSUPP. In this case we need to fall back to ftruncate
|
||||
*/
|
||||
ret = posix_fallocate(fd, 0, size);
|
||||
if (ret == 0) {
|
||||
return fd;
|
||||
} else if (ret != EOPNOTSUPP) {
|
||||
} else if (ret != EINVAL && ret != EOPNOTSUPP) {
|
||||
close(fd);
|
||||
errno = ret;
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue
Block a user