On Fri, Oct 18, 2019 at 09:02:12AM +0000, misono.tomohiro@xxxxxxxxxxx wrote: > > On Wed, Oct 16, 2019 at 07:53:47PM +0900, Misono Tomohiro wrote: > > > This test requires fallocate keep_size. So, skip the test if a target > > > FS does not support the function to avoid false negative. > > > > > > Signed-off-by: Misono Tomohiro <misono.tomohiro@xxxxxxxxxxxxxx> > > > > Would you please paste the false failure you've seen? I can't recall I hit such failures, and I think fsx would just disable unsupported > > operations and don't cause failure, it just prints a message to stderr, and we already redirect stderr to $seqres.full in run_fsx > > in 469. > > Hi, I just got output mismatch error: > > $ cat results/generic/469.out.bad > QA output created by 469 > fsx --replay-ops fsxops.0 > Seed set to 1 > main: filesystem does not support fallocate mode FALLOC_FL_KEEP_SIZE, disabling! > main: filesystem does not support fallocate mode FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, disabling! > main: filesystem does not support fallocate mode FALLOC_FL_ZERO_RANGE, disabling! > main: filesystem does not support fallocate mode FALLOC_FL_COLLAPSE_RANGE, disabling! > main: filesystem does not support fallocate mode FALLOC_FL_INSERT_RANGE, disabling! > main: filesystem does not support clone range, disabling! > main: filesystem does not support dedupe range, disabling! > fallocate: 0x0 to 0x1000 > do_preallocate: fallocate: Operation not supported > LOG DUMP (1 total operations): > 1( 1 mod 256): FALLOC 0x0 thru 0x1000 (0x1000 bytes) PAST_EOF > Log of operations saved to "/test1/469.fsx.fsxops"; replay with --replay-ops > Correct content saved for comparison > (maybe hexdump "/test1/469.fsx" vs "/test1/469.fsx.fsxgood") Ah, I recalled that I actually tried to fix this issue before, but Amir didn't like my patch back then :) https://spinics.net/lists/fstests/msg07953.html Because my patch silently ignored 'keep_size' flag when replaying operations, and look at it again, I don't like it either. I think we could just skip the keep_size operations instead of ignoring it. Would you please try this patch? diff --git a/ltp/fsx.c b/ltp/fsx.c index 06d08e4e93f3..ae89bf665db4 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -2044,6 +2044,9 @@ have_op: if (!fallocate_calls) { log4(OP_FALLOCATE, offset, size, FL_SKIPPED); goto out; + } else if (keep_size && !keep_size_calls) { + log4(OP_FALLOCATE, offset, size, FL_SKIPPED | FL_KEEP_SIZE); + goto out; } break; case OP_PUNCH_HOLE: @@ -2056,6 +2059,9 @@ have_op: if (!zero_range_calls) { log4(OP_ZERO_RANGE, offset, size, FL_SKIPPED); goto out; + } else if (keep_size && !keep_size_calls) { + log4(OP_ZERO_RANGE, offset, size, FL_SKIPPED | FL_KEEP_SIZE); + goto out; } break; case OP_COLLAPSE_RANGE: Thanks! Eryu > > Thanks. > > > > > Thanks, > > Eryu > > > > > --- > > > tests/generic/469 | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/tests/generic/469 b/tests/generic/469 index > > > 47fdf0cf..0c6f8ae5 100755 > > > --- a/tests/generic/469 > > > +++ b/tests/generic/469 > > > @@ -40,6 +40,7 @@ rm -f $seqres.full > > > _supported_fs generic > > > _supported_os Linux > > > _require_test > > > +_require_xfs_io_command "falloc" "-k" > > > > > > run_fsx() > > > { > > > -- > > > 2.21.0 > > >