@@ -163,6 +163,7 @@ int seed = 1; /* -S flag */
int mapped_writes = 1; /* -W flag disables */
int fallocate_calls = 1; /* -F flag disables */
int keep_size_calls = 1; /* -K flag disables */
+int skip_keep_size = 0; /* -a flag skips unsupported keep_size automatically */
int punch_hole_calls = 1; /* -H flag disables */
int zero_range_calls = 1; /* -z flag disables */
int collapse_range_calls = 1; /* -C flag disables */
@@ -2268,6 +2269,7 @@ usage(void)
#ifdef FALLOC_FL_KEEP_SIZE
" -K: Do not use keep size calls\n"
#endif
+" -a: Skip unsupported keep size automatically even if it's defined by --replay-ops\n"
" -L: fsxLite - no file creations & no file size changes\n\
-N numops: total # operations to do (default infinity)\n\
-O: use oplen (see -o flag) for every op (default random)\n\
@@ -2472,7 +2474,7 @@ main(int argc, char **argv)
setvbuf(stdout, (char *)0, _IOLBF, 0); /* line buffered stdout */
while ((ch = getopt_long(argc, argv,
- "b:c:dfg:i:j:kl:m:no:p:qr:s:t:w:xyABD:EFJKHzCILN:OP:RS:WXZ",
+ "ab:c:dfg:i:j:kl:m:no:p:qr:s:t:w:xyABD:EFJKHzCILN:OP:RS:WXZ",
longopts, NULL)) != EOF)
switch (ch) {
case 'b':
@@ -2590,6 +2592,9 @@ main(int argc, char **argv)
case 'K':
keep_size_calls = 0;
break;
+ case 'a':
+ skip_keep_size = 1;
+ break;
case 'H':
punch_hole_calls = 0;
break;
@@ -56,7 +56,7 @@ write 0x3e5ec 0x1a14 0x21446
zero_range 0x20fac 0x6d9c 0x40000 keep_size
mapwrite 0x216ad 0x274f 0x40000
EOF
-run_check $here/ltp/fsx -d --replay-ops $fsxops $SCRATCH_MNT/testfile
+run_check $here/ltp/fsx -d --replay-ops $fsxops $FSX_AVOID $SCRATCH_MNT/testfile
_flakey_drop_and_remount
_unmount_flakey
@@ -43,7 +43,7 @@ _require_test
run_fsx()
{
- $here/ltp/fsx $2 --replay-ops $1 $file 2>&1 | tee -a $seqres.full >$tmp.fsx
+ $here/ltp/fsx $2 --replay-ops $1 $FSX_AVOID $file 2>&1 | tee -a $seqres.full >$tmp.fsx
if [ ${PIPESTATUS[0]} -ne 0 ]; then
cat $tmp.fsx
exit 1
@@ -50,7 +50,7 @@ ENDL
victim=$SCRATCH_MNT/a
touch $victim
-$here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output 2>&1 || cat $tmp.output
+$here/ltp/fsx --replay-ops $tmp.fsxops $FSX_AVOID $victim > $tmp.output 2>&1 || cat $tmp.output
echo "Silence is golden"
status=0
@@ -47,7 +47,7 @@ ENDL
victim=$SCRATCH_MNT/a
touch $victim
-$here/ltp/fsx --replay-ops $tmp.fsxops $victim > $tmp.output 2>&1 || cat $tmp.output
+$here/ltp/fsx --replay-ops $tmp.fsxops $FSX_AVOID $victim > $tmp.output 2>&1 || cat $tmp.output
echo "Silence is golden"
status=0
1) Use '-a' option to skip unsupported keep size automatically even if it's defined by --replay-ops. 2) Add $FSX_AVOID to tests which defines keep size by --replay-ops. Signed-off-by: Xiao Yang <yangx.jy@cn.fujitsu.com> --- ltp/fsx.c | 7 ++++++- tests/generic/456 | 2 +- tests/generic/469 | 2 +- tests/generic/499 | 2 +- tests/generic/511 | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-)