diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/zfs-tests/tests/functional/tmpfile/setup.ksh | 11 | ||||
-rw-r--r-- | tests/zfs-tests/tests/functional/tmpfile/tmpfile_test.c | 11 |
2 files changed, 13 insertions, 9 deletions
diff --git a/tests/zfs-tests/tests/functional/tmpfile/setup.ksh b/tests/zfs-tests/tests/functional/tmpfile/setup.ksh index 243a5b779..bc00a2a22 100755 --- a/tests/zfs-tests/tests/functional/tmpfile/setup.ksh +++ b/tests/zfs-tests/tests/functional/tmpfile/setup.ksh @@ -31,9 +31,12 @@ . $STF_SUITE/include/libtest.shlib -if ! $STF_SUITE/tests/functional/tmpfile/tmpfile_test /tmp; then - log_unsupported "The kernel doesn't support O_TMPFILE." +DISK=${DISKS%% *} +default_setup_noexit $DISK + +if ! $STF_SUITE/tests/functional/tmpfile/tmpfile_test $TESTDIR; then + default_cleanup_noexit + log_unsupported "The kernel/filesystem doesn't support O_TMPFILE" fi -DISK=${DISKS%% *} -default_setup $DISK +log_pass diff --git a/tests/zfs-tests/tests/functional/tmpfile/tmpfile_test.c b/tests/zfs-tests/tests/functional/tmpfile/tmpfile_test.c index 5fb67b47f..91527ac5e 100644 --- a/tests/zfs-tests/tests/functional/tmpfile/tmpfile_test.c +++ b/tests/zfs-tests/tests/functional/tmpfile/tmpfile_test.c @@ -36,13 +36,14 @@ main(int argc, char *argv[]) fd = open(argv[1], O_TMPFILE | O_WRONLY, 0666); if (fd < 0) { - /* - * Only fail on EISDIR. If we get EOPNOTSUPP, that means - * kernel support O_TMPFILE, but the path at argv[1] doesn't. - */ if (errno == EISDIR) { - fprintf(stderr, "kernel doesn't support O_TMPFILE\n"); + fprintf(stderr, + "The kernel doesn't support O_TMPFILE\n"); return (1); + } else if (errno == EOPNOTSUPP) { + fprintf(stderr, + "The filesystem doesn't support O_TMPFILE\n"); + return (2); } perror("open"); } else { |