The test 016 fills scratch device with some data and then creates xfs fs
on the scratch device. Later, the test assumes that the previously
written data are still written there and checks for them at specific
locations. On ssd drive this will lead to a failure since the blocks are
discarded by default when the mkfs command is run.
This is a more verbose version of the previous patch.
This simple patch that adds -K to stop the discarding (if the mkfs
command supports it) fixed the issue for me:
Signed-off-by: Boris Ranto <branto@xxxxxxxxxx>
diff --git a/016 b/016
index 9275ade..08a73f4 100755
@@ -65,6 +65,15 @@ _init()
$here/src/devzero -b 2048 -n 50 -v 198 $SCRATCH_DEV
echo "*** mkfs"
+ # Do not discard blocks as we check for patterns in free space.
+ # First, make sure that mkfs supports '-K' option by using its
+ # dry run (-N option) and then add it to the force_opts.
+ if _scratch_mkfs_xfs -N -K $force_opts >/dev/null 2>&1; then
+ force_opts="-K $force_opts"
echo mkfs_xfs $force_opts $SCRATCH_DEV >>$seq.full
_scratch_mkfs_xfs $force_opts >$tmp.mkfs0 2>&1
[ $? -ne 0 ] && \