aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2017-12-13 14:45:01 -0800
committerEryu Guan <eguan@redhat.com>2017-12-15 15:16:46 +0800
commitd69d223dfa90493377f957acf0be92b1033f43db (patch)
treeac2063c1a86033972fa20325376918a73bdb3188
parent88b65cf51e823043abdcc1546f98f694e437ed3c (diff)
downloadxfstests-d69d223dfa90493377f957acf0be92b1033f43db.tar.gz
xfs: fix tests to handle removal of no-alloc create nonfeature
We're removing from XFS the ability to perform no-allocation file creation. This was added years ago because some customer of SGI demanded that we still be able to create (empty?) files with zero free blocks remaining so long as there were free inodes and space in existing directory blocks. This came at an unacceptable risk of ENOSPC'ing midway through a transaction and shutting down the fs, so we're removing it for the create case having changed our minds 20 years later. However, some tests fail as a result, so fix them to be more flexible about not failing when a dir/file creation fails due to ENOSPC. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Eryu Guan <eguan@redhat.com>
-rwxr-xr-xtests/xfs/0136
-rwxr-xr-xtests/xfs/0143
-rwxr-xr-xtests/xfs/1042
-rwxr-xr-xtests/xfs/1092
4 files changed, 9 insertions, 4 deletions
diff --git a/tests/xfs/013 b/tests/xfs/013
index 80298caba8..394b9bce84 100755
--- a/tests/xfs/013
+++ b/tests/xfs/013
@@ -145,8 +145,10 @@ $FSSTRESS_PROG -d $SCRATCH_MNT/fsstress -n 9999999 -p 2 -S t \
for i in $(seq 1 $LOOPS)
do
# hard link the content of the current directory to the next
- cp -Rl $SCRATCH_MNT/dir$i $SCRATCH_MNT/dir$((i+1)) 2>&1 | \
- filter_enospc
+ while ! test -d $SCRATCH_MNT/dir$((i+1)); do
+ cp -Rl $SCRATCH_MNT/dir$i $SCRATCH_MNT/dir$((i+1)) 2>&1 | \
+ filter_enospc
+ done
# do a random replacement of files in the new directory
_rand_replace $SCRATCH_MNT/dir$((i+1)) $COUNT
diff --git a/tests/xfs/014 b/tests/xfs/014
index 875ab400ca..08cd001f74 100755
--- a/tests/xfs/014
+++ b/tests/xfs/014
@@ -112,6 +112,9 @@ _test_enospc()
# consume 1/2 of the current preallocation across the set of 4 writers
write_size=$((TOTAL_PREALLOC / 2 / 4))
for i in $(seq 0 3); do
+ touch $dir/file.$i
+ done
+ for i in $(seq 0 3); do
$XFS_IO_PROG -f -c "pwrite 0 $write_size" $dir/file.$i \
>> $seqres.full &
done
diff --git a/tests/xfs/104 b/tests/xfs/104
index 785027e4c7..c3b59775fd 100755
--- a/tests/xfs/104
+++ b/tests/xfs/104
@@ -65,7 +65,7 @@ _stress_scratch()
# -w ensures that the only ops are ones which cause write I/O
FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs \
-n $nops $FSSTRESS_AVOID`
- $FSSTRESS_PROG $FSSTRESS_ARGS >> $seqres.full &
+ $FSSTRESS_PROG $FSSTRESS_ARGS >> $seqres.full 2>&1 &
}
# real QA test starts here
diff --git a/tests/xfs/109 b/tests/xfs/109
index e0fdec3dd7..2625f154a6 100755
--- a/tests/xfs/109
+++ b/tests/xfs/109
@@ -79,7 +79,7 @@ allocate()
while [ $j -lt 100 ]; do
$XFS_IO_PROG -f -c 'pwrite -b 64k 0 16m' $file \
>/dev/null 2>&1
- rm $file
+ test -e $file && rm $file
let j=$j+1
done
} &