Commit 3e49aa8e authored by Mark Brown's avatar Mark Brown Committed by Andrew Morton
Browse files

selftest/mm: skip if fallocate() is unsupported in gup_longterm

Currently gup_longterm assumes that filesystems support fallocate() and
uses that to allocate space in files, however this is an optional feature
and is in particular not implemented by NFSv3 which is commonly used in CI
systems leading to spurious failures.  Check for lack of support and
report a skip instead for that case.

Link: https://lkml.kernel.org/r/20250613-selftest-mm-gup-longterm-fallocate-nfs-v1-1-758a104c175f@kernel.org


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Cc: David Hildenbrand <david@redhat.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 4535cb33
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -114,7 +114,15 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared)
	}

	if (fallocate(fd, 0, 0, size)) {
		if (size == pagesize) {
		/*
		 * Some filesystems (eg, NFSv3) don't support
		 * fallocate(), report this as a skip rather than a
		 * test failure.
		 */
		if (errno == EOPNOTSUPP) {
			ksft_print_msg("fallocate() not supported by filesystem\n");
			result = KSFT_SKIP;
		} else if (size == pagesize) {
			ksft_print_msg("fallocate() failed (%s)\n", strerror(errno));
			result = KSFT_FAIL;
		} else {