In configure script, we only check whether or not the build of test program succeeds, but that doesn't mean the kernel has implemented the syscall, so checking for this case. Signed-off-by: Hou Tao <houtao1@xxxxxxxxxx> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- v2: * also check ENOSYS for fallocate syscall --- ltp/fsx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ltp/fsx.c b/ltp/fsx.c index 316f08eb..f4a1c7cf 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -1583,7 +1583,7 @@ test_copy_range(void) loff_t o1 = 0, o2 = 0; if (syscall(__NR_copy_file_range, fd, &o1, fd, &o2, 0, 0) == -1 && - (errno == EOPNOTSUPP || errno == ENOTTY)) { + (errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTTY)) { if (!quiet) fprintf(stderr, "main: filesystem does not support " @@ -2423,7 +2423,8 @@ __test_fallocate(int mode, const char *mode_str) #ifdef HAVE_LINUX_FALLOC_H int ret = 0; if (!lite) { - if (fallocate(fd, mode, file_size, 1) && errno == EOPNOTSUPP) { + if (fallocate(fd, mode, file_size, 1) && + (errno == ENOSYS || errno == EOPNOTSUPP)) { if(!quiet) fprintf(stderr, "main: filesystem does not support " -- 2.16.2.dirty