diff mbox series

src/seek_sanity_test: skip test20 if file's too big

Message ID 20180827131211.5887-1-lhenriques@suse.com (mailing list archive)
State New, archived
Headers show
Series src/seek_sanity_test: skip test20 if file's too big | expand

Commit Message

Luis Henriques Aug. 27, 2018, 1:12 p.m. UTC
Since the allocation size can be quite big for some filesystems (4194304
for cephfs), the pwrite operation in test20 may fail with EFBIG.  Skip
this test if that's the case.

Signed-off-by: Luis Henriques <lhenriques@suse.com>
---
 src/seek_sanity_test.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c
index e5aab239771d..e9938d1b1a23 100644
--- a/src/seek_sanity_test.c
+++ b/src/seek_sanity_test.c
@@ -280,8 +280,17 @@  static int test20(int fd, int testnum)
 	/* Magic size in the middle of ext[23] triple indirect tree */
 	filsz = (12 + bufsz / 4 + 8 * bufsz / 4 * bufsz / 4 + 2 * bufsz / 4 + 5) * bufsz;
 	ret = do_pwrite(fd, buf, bufsz, filsz - bufsz);
-	if (ret)
+	if (ret) {
+		/*
+		 * Report success. Filesystem just cannot handle so large
+		 * offsets and correctly reports it.
+		 */
+		if (errno == EFBIG) {
+			fprintf(stdout, "Test skipped as fs doesn't support so large files.\n");
+			ret = 0;
+		}
 		goto out;
+	}
 
 	/* Offset inside ext[23] indirect block */
 	ret += do_lseek(testnum, 1, fd, filsz, SEEK_DATA, 14 * bufsz, filsz - bufsz);