Starting with btrfs-progs v6.0, the defrag command now prints to stdout
the full path of the files it processes. This makes test cases btrfs/021
and btrfs/256 fail because they don't expect any output from the defrag
command.
The change happened with the following commit in btrfs-progs:
dd724f21803d ("btrfs-progs: add logic to handle LOG_DEFAULT messages")
So update the tests to ignore the stdout of the defrag command.
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
sleep 0.5
+ # In new versions of btrfs-progs (6.0+), the defrag command outputs to
+ # stdout the path of the files it operates on. So ignore that.
find $SCRATCH_MNT -type f -print0 | xargs -0 \
- $BTRFS_UTIL_PROG filesystem defrag -f
+ $BTRFS_UTIL_PROG filesystem defrag -f > /dev/null
sync
wait
# Now defrag each file.
for sz in ${file_sizes[@]}; do
echo "Defragging file with $sz bytes..." >> $seqres.full
- $BTRFS_UTIL_PROG filesystem defragment "$SCRATCH_MNT/f_$sz"
+ # In new versions of btrfs-progs (6.0+), the defrag command outputs to
+ # stdout the path of the files it operates on. So ignore that.
+ $BTRFS_UTIL_PROG filesystem defragment "$SCRATCH_MNT/f_$sz" > /dev/null
done
# Verify the checksums after the defrag operations.