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

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



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@xxxxxxxx>
---
 src/seek_sanity_test.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

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);



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux