diff --git a/sysdeps/unix/sysv/linux/i386/fallocate.c b/sysdeps/unix/sysv/linux/i386/fallocate.c index 14e7883..655b192 100644 --- a/sysdeps/unix/sysv/linux/i386/fallocate.c +++ b/sysdeps/unix/sysv/linux/i386/fallocate.c @@ -30,7 +30,14 @@ int fallocate (int fd, int mode, __off_t offset, __off_t len) { #ifdef __NR_fallocate - return __call_fallocate (fd, mode, offset, len); + int ret; + ret = __call_fallocate (fd, mode, offset, len); + if (ret > 0) /* __call_fallocate has done negl %eax */ + { + __set_errno (ret); + return -1; + } + return 0; #else __set_errno (ENOSYS); return -1; diff --git a/sysdeps/unix/sysv/linux/i386/fallocate64.c b/sysdeps/unix/sysv/linux/i386/fallocate64.c index 85f315c..d1a3628 100644 --- a/sysdeps/unix/sysv/linux/i386/fallocate64.c +++ b/sysdeps/unix/sysv/linux/i386/fallocate64.c @@ -30,7 +30,14 @@ int fallocate64 (int fd, int mode, __off64_t offset, __off64_t len) { #ifdef __NR_fallocate - return __call_fallocate (fd, mode, offset, len); + int ret; + ret = __call_fallocate (fd, mode, offset, len); + if (ret > 0) /* __call_fallocate has done negl %eax */ + { + __set_errno (ret); + return -1; + } + return 0; #else __set_errno (ENOSYS); return -1;