fsx: check ENOSYS in test_copy_range() & test_fallocate()

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>
This commit is contained in:
Hou Tao
2019-01-04 16:19:27 +08:00
committed by Eryu Guan
parent b0c8dbccf4
commit 2408f208c1
+3 -2
View File
@@ -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 "