From 1283d54dac97216fb7bf099b864a6728043e2d8d Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sat, 15 Feb 2020 15:15:00 +0000 Subject: [PATCH] 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 --- cursor/os-compatibility.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cursor/os-compatibility.c b/cursor/os-compatibility.c index 6f5b39f..002bb5c 100644 --- a/cursor/os-compatibility.c +++ b/cursor/os-compatibility.c @@ -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; -- 2.7.4