]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
selftests/mm: skip gup_longerm tests on weird filesystems
authorBrendan Jackman <jackmanb@google.com>
Fri, 21 Feb 2025 18:25:48 +0000 (18:25 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 4 Mar 2025 05:50:27 +0000 (21:50 -0800)
Some filesystems don't support funtract()ing unlinked files.  They return
ENOENT.  In that case, skip the test.

Link: https://lkml.kernel.org/r/20250221-mm-selftests-v2-9-28c4d66383c5@google.com
Signed-off-by: Brendan Jackman <jackmanb@google.com>
Cc: Dev Jain <dev.jain@arm.com>
Cc: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Mateusz Guzik <mjguzik@gmail.com>
Cc: Shuah Khan (Samsung OSG) <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/gup_longterm.c

index 879e9e4e8cce8127656fabe098abf7db5f6c5e23..d2c33dd9da9cd43cc6666e5d9ffd3ff9e62dbb27 100644 (file)
@@ -96,7 +96,15 @@ static void do_test(int fd, size_t size, enum test_type type, bool shared)
        int ret;
 
        if (ftruncate(fd, size)) {
-               ksft_test_result_fail("ftruncate() failed (%s)\n", strerror(errno));
+               if (errno == ENOENT) {
+                       /*
+                        * This can happen if the file has been unlinked and the
+                        * filesystem doesn't support truncating unlinked files.
+                        */
+                       ksft_test_result_skip("ftruncate() failed with ENOENT");
+               } else {
+                       ksft_test_result_fail("ftruncate() failed (%s)\n", strerror(errno));
+               }
                return;
        }