The fallocate syscall might fail on Linux due missing support from
underlying filesystem (for instance some NFS versions). This patch
adds this check for fallocate tests. It also moves tst-fallocate{64}
to 'io' folder (since it is on fallocate{64} is built).
Checked on x86_64.
* sysdeps/unix/sysv/linux/Makefile [$(subdir) = math] (tests): Move
tst-fallocate{64}.
* sysdeps/unix/sysv/linux/tst-fallocate-common.c: Check for EOPNOTSUPP
on syscall return.
+2016-10-18 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/unix/sysv/linux/Makefile [$(subdir) = math] (tests): Move
+ tst-fallocate{64}.
+ * sysdeps/unix/sysv/linux/tst-fallocate-common.c: Check for EOPNOTSUPP
+ on syscall return.
+
2016-10-17 Carlos O'Donell <carlos@redhat.com>
[BZ #20689]
bits/mman-linux.h
tests += tst-clone tst-clone2 tst-fanotify tst-personality tst-quota \
- tst-fallocate tst-fallocate64 tst-sync_file_range
+ tst-sync_file_range
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
sysdep_routines += xstatconv internal_statvfs internal_statvfs64 \
sync_file_range fallocate fallocate64
sysdep_headers += bits/fcntl-linux.h
+
+tests += tst-fallocate tst-fallocate64
endif
ifeq ($(subdir),elf)
and check if both buffer have the same contents. */
ret = fallocate (temp_fd, 0, offset, BLK_SIZE);
if (ret == -1)
- FAIL_EXIT1 ("fallocate failed");
+ {
+ /* fallocate might not be fully supported by underlying filesystem (for
+ instance some NFS versions). */
+ if (errno == EOPNOTSUPP)
+ FAIL_EXIT (77, "fallocate not supported");
+ FAIL_EXIT1 ("fallocate failed");
+ }
ret = fstat (temp_fd, &finfo);
if (ret == -1)