diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/tst-fallocate-common.c | 8 |
3 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 11ee620309..adc4df985d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +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] diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 101e120eb2..e329a6b3f9 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -43,7 +43,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \ 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). @@ -173,6 +173,8 @@ ifeq ($(subdir),io) 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) diff --git a/sysdeps/unix/sysv/linux/tst-fallocate-common.c b/sysdeps/unix/sysv/linux/tst-fallocate-common.c index 9879488687..d98bf4a3e6 100644 --- a/sysdeps/unix/sysv/linux/tst-fallocate-common.c +++ b/sysdeps/unix/sysv/linux/tst-fallocate-common.c @@ -58,7 +58,13 @@ do_test_with_offset (off_t offset) 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) |