fsx: check ENOSYS in test_copy_range() & test_fallocate()
authorHou Tao <houtao1@huawei.com>
Fri, 4 Jan 2019 08:19:27 +0000 (16:19 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 6 Jan 2019 14:02:53 +0000 (22:02 +0800)
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@huawei.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
ltp/fsx.c

index 316f08eb3b9f387ca22446b4131855ac7b731558..f4a1c7cf820bd2843684d7df2e8625a82d87b399 100644 (file)
--- 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 "