diff mbox series

[10/10] btrfs/06[0-9]..07[0-4]: kill all background tasks when test is killed/interrupted

Message ID 48866623524ab565944db6f7fa61f6a0ce0c0996.1711558345.git.fdmanana@suse.com (mailing list archive)
State New, archived
Headers show
Series fstests/btrfs: fixes for tests btrfs/06[0-9] and btrfs/07[0-4] | expand

Commit Message

Filipe Manana March 27, 2024, 5:11 p.m. UTC
From: Filipe Manana <fdmanana@suse.com>

Test cases btrfs/06[0-9] and btrfs/07[0-4] exercise multiple concurrent
operations while fsstress is running in parallel, and all these are left
as child processes running in the background, which are correctly stopped
if the tests are not interrupted/killed. However if any of these tests is
interrupted/killed, it often leaves child processes still running in the
background, which prevent further running fstests again. For example:

  $ /check -g auto
  (...)
  btrfs/060 394s ...  264s
  btrfs/061 83s ...  69s
  btrfs/062 109s ...  105s
  btrfs/063 52s ...  67s
  btrfs/064 53s ...  51s
  btrfs/065 88s ...  271s
  btrfs/066 127s ...  241s
  btrfs/067 435s ...  248s
  btrfs/068 161s ... ^C^C
  ^C

  $ ./check btrfs/068
  FSTYP         -- btrfs
  PLATFORM      -- Linux/x86_64 debian0 6.8.0-rc7-btrfs-next-153+ #1 SMP PREEMPT_DYNAMIC Mon Mar  4 17:19:19 WET 2024
  MKFS_OPTIONS  -- /dev/sdb
  MOUNT_OPTIONS -- /dev/sdb /home/fdmanana/btrfs-tests/scratch_1

  our local _scratch_mkfs routine ...
  btrfs-progs v6.6.2
  See https://btrfs.readthedocs.io for more information.

  ERROR: unable to open /dev/sdb: Device or resource busy
  check: failed to mkfs $SCRATCH_DEV using specified options
  Interrupted!
  Passed all 0 tests

In this case there was still a process running _btrfs_stress_subvolume()
from common/btrfs.

This is a bit annoying because it requires manually finding out which
process is preventing unmounting the scratch device and then properly
stop/kill it.

So fix this by adding a _cleanup() function to all these tests and then
making sure it stops all the child processes it spawned and are running
in the background.

All these tests have the same structure as they were part of the same
patchset and from the same author.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
 tests/btrfs/060 | 22 +++++++++++++++++++++-
 tests/btrfs/061 | 19 +++++++++++++++++++
 tests/btrfs/062 | 19 +++++++++++++++++++
 tests/btrfs/063 | 19 +++++++++++++++++++
 tests/btrfs/064 | 19 +++++++++++++++++++
 tests/btrfs/065 | 22 +++++++++++++++++++++-
 tests/btrfs/066 | 22 +++++++++++++++++++++-
 tests/btrfs/067 | 22 +++++++++++++++++++++-
 tests/btrfs/068 | 22 +++++++++++++++++++++-
 tests/btrfs/069 | 19 +++++++++++++++++++
 tests/btrfs/070 | 19 +++++++++++++++++++
 tests/btrfs/071 | 19 +++++++++++++++++++
 tests/btrfs/072 | 19 +++++++++++++++++++
 tests/btrfs/073 | 19 +++++++++++++++++++
 tests/btrfs/074 | 19 +++++++++++++++++++
 15 files changed, 295 insertions(+), 5 deletions(-)

Comments

Anand Jain March 28, 2024, 9:48 a.m. UTC | #1
On 3/28/24 01:11, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> Test cases btrfs/06[0-9] and btrfs/07[0-4] exercise multiple concurrent
> operations while fsstress is running in parallel, and all these are left
> as child processes running in the background, which are correctly stopped
> if the tests are not interrupted/killed. However if any of these tests is
> interrupted/killed, it often leaves child processes still running in the
> background, which prevent further running fstests again. For example:
> 
>    $ /check -g auto
>    (...)
>    btrfs/060 394s ...  264s
>    btrfs/061 83s ...  69s
>    btrfs/062 109s ...  105s
>    btrfs/063 52s ...  67s
>    btrfs/064 53s ...  51s
>    btrfs/065 88s ...  271s
>    btrfs/066 127s ...  241s
>    btrfs/067 435s ...  248s
>    btrfs/068 161s ... ^C^C
>    ^C
> 
>    $ ./check btrfs/068
>    FSTYP         -- btrfs
>    PLATFORM      -- Linux/x86_64 debian0 6.8.0-rc7-btrfs-next-153+ #1 SMP PREEMPT_DYNAMIC Mon Mar  4 17:19:19 WET 2024
>    MKFS_OPTIONS  -- /dev/sdb
>    MOUNT_OPTIONS -- /dev/sdb /home/fdmanana/btrfs-tests/scratch_1
> 
>    our local _scratch_mkfs routine ...
>    btrfs-progs v6.6.2
>    See https://btrfs.readthedocs.io for more information.
> 
>    ERROR: unable to open /dev/sdb: Device or resource busy
>    check: failed to mkfs $SCRATCH_DEV using specified options
>    Interrupted!
>    Passed all 0 tests
> 
> In this case there was still a process running _btrfs_stress_subvolume()
> from common/btrfs.
> 
> This is a bit annoying because it requires manually finding out which
> process is preventing unmounting the scratch device and then properly
> stop/kill it.
> 
> So fix this by adding a _cleanup() function to all these tests and then
> making sure it stops all the child processes it spawned and are running
> in the background.
> 
> All these tests have the same structure as they were part of the same
> patchset and from the same author.
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>

Reviewed-by: Anand Jain <anand.jain@oracle.com>

Thanks, Anand

> ---
>   tests/btrfs/060 | 22 +++++++++++++++++++++-
>   tests/btrfs/061 | 19 +++++++++++++++++++
>   tests/btrfs/062 | 19 +++++++++++++++++++
>   tests/btrfs/063 | 19 +++++++++++++++++++
>   tests/btrfs/064 | 19 +++++++++++++++++++
>   tests/btrfs/065 | 22 +++++++++++++++++++++-
>   tests/btrfs/066 | 22 +++++++++++++++++++++-
>   tests/btrfs/067 | 22 +++++++++++++++++++++-
>   tests/btrfs/068 | 22 +++++++++++++++++++++-
>   tests/btrfs/069 | 19 +++++++++++++++++++
>   tests/btrfs/070 | 19 +++++++++++++++++++
>   tests/btrfs/071 | 19 +++++++++++++++++++
>   tests/btrfs/072 | 19 +++++++++++++++++++
>   tests/btrfs/073 | 19 +++++++++++++++++++
>   tests/btrfs/074 | 19 +++++++++++++++++++
>   15 files changed, 295 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/btrfs/060 b/tests/btrfs/060
> index 53cbd3a0..f74d9593 100755
> --- a/tests/btrfs/060
> +++ b/tests/btrfs/060
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto balance subvol scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
> +		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	fi
> +	if [ ! -z "$balance_pid" ]; then
> +		_btrfs_kill_stress_balance_pid $balance_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -20,11 +36,12 @@ _require_scratch_nocheck
>   _require_scratch_dev_pool 4
>   _btrfs_get_profile_configs
>   
> +stop_file=$TEST_DIR/$seq.stop.$$
> +
>   run_test()
>   {
>   	local mkfs_opts=$1
>   	local subvol_mnt=$TEST_DIR/$seq.mnt
> -	local stop_file=$TEST_DIR/$seq.stop.$$
>   
>   	echo "Test $mkfs_opts" >>$seqres.full
>   
> @@ -53,9 +70,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	unset subvol_pid
>   	_btrfs_kill_stress_balance_pid $balance_pid
> +	unset balance_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/061 b/tests/btrfs/061
> index b8b2706c..fec90882 100755
> --- a/tests/btrfs/061
> +++ b/tests/btrfs/061
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto balance scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$balance_pid" ]; then
> +		_btrfs_kill_stress_balance_pid $balance_pid
> +	fi
> +	if [ ! -z "$scrub_pid" ]; then
> +		_btrfs_kill_stress_scrub_pid $scrub_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -51,8 +67,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_balance_pid $balance_pid
> +	unset balance_pid
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
> +	unset scrub_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/062 b/tests/btrfs/062
> index 59d581be..0b57681f 100755
> --- a/tests/btrfs/062
> +++ b/tests/btrfs/062
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto balance defrag compress scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$balance_pid" ]; then
> +		_btrfs_kill_stress_balance_pid $balance_pid
> +	fi
> +	if [ ! -z "$defrag_pid" ]; then
> +		_btrfs_kill_stress_defrag_pid $defrag_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -52,8 +68,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_balance_pid $balance_pid
> +	unset balance_pid
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
> +	unset defrag_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/063 b/tests/btrfs/063
> index 5ee2837f..99d9d2c1 100755
> --- a/tests/btrfs/063
> +++ b/tests/btrfs/063
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto balance remount compress scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$balance_pid" ]; then
> +		_btrfs_kill_stress_balance_pid $balance_pid
> +	fi
> +	if [ ! -z "$remount_pid" ]; then
> +		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -51,8 +67,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_balance_pid $balance_pid
> +	unset balance_pid
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	unset remount_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/064 b/tests/btrfs/064
> index 9e0b3b30..663442c6 100755
> --- a/tests/btrfs/064
> +++ b/tests/btrfs/064
> @@ -12,6 +12,22 @@
>   . ./common/preamble
>   _begin_fstest auto balance replace volume scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$balance_pid" ]; then
> +		_btrfs_kill_stress_balance_pid $balance_pid
> +	fi
> +	if [ ! -z "$replace_pid" ]; then
> +		_btrfs_kill_stress_replace_pid $replace_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -63,8 +79,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_balance_pid $balance_pid
> +	unset balance_pid
>   	_btrfs_kill_stress_replace_pid $replace_pid
> +	unset replace_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/065 b/tests/btrfs/065
> index f9e43cdc..b1e54fc8 100755
> --- a/tests/btrfs/065
> +++ b/tests/btrfs/065
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto subvol replace volume scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
> +		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	fi
> +	if [ ! -z "$replace_pid" ]; then
> +		_btrfs_kill_stress_replace_pid $replace_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -21,12 +37,13 @@ _require_scratch_dev_pool 5
>   _require_scratch_dev_pool_equal_size
>   _btrfs_get_profile_configs replace
>   
> +stop_file=$TEST_DIR/$seq.stop.$$
> +
>   run_test()
>   {
>   	local mkfs_opts=$1
>   	local saved_scratch_dev_pool=$SCRATCH_DEV_POOL
>   	local subvol_mnt=$TEST_DIR/$seq.mnt
> -	local stop_file=$TEST_DIR/$seq.stop.$$
>   
>   	echo "Test $mkfs_opts" >>$seqres.full
>   
> @@ -61,9 +78,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	unset subvol_pid
>   	_btrfs_kill_stress_replace_pid $replace_pid
> +	unset replace_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/066 b/tests/btrfs/066
> index b6f904ac..feb6062e 100755
> --- a/tests/btrfs/066
> +++ b/tests/btrfs/066
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto subvol scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
> +		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	fi
> +	if [ ! -z "$scrub_pid" ]; then
> +		_btrfs_kill_stress_scrub_pid $scrub_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -20,11 +36,12 @@ _require_scratch_nocheck
>   _require_scratch_dev_pool 4
>   _btrfs_get_profile_configs
>   
> +stop_file=$TEST_DIR/$seq.stop.$$
> +
>   run_test()
>   {
>   	local mkfs_opts=$1
>   	local subvol_mnt=$TEST_DIR/$seq.mnt
> -	local stop_file=$TEST_DIR/$seq.stop.$$
>   
>   	echo "Test $mkfs_opts" >>$seqres.full
>   
> @@ -53,9 +70,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	unset subvol_pid
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
> +	unset scrub_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/067 b/tests/btrfs/067
> index 7be09d52..0bbfe83f 100755
> --- a/tests/btrfs/067
> +++ b/tests/btrfs/067
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto subvol defrag compress scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
> +		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	fi
> +	if [ ! -z "$defrag_pid" ]; then
> +		_btrfs_kill_stress_defrag_pid $defrag_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -20,12 +36,13 @@ _require_scratch_nocheck
>   _require_scratch_dev_pool 4
>   _btrfs_get_profile_configs
>   
> +stop_file=$TEST_DIR/$seq.stop.$$
> +
>   run_test()
>   {
>   	local mkfs_opts=$1
>   	local with_compress=$2
>   	local subvol_mnt=$TEST_DIR/$seq.mnt
> -	local stop_file=$TEST_DIR/$seq.stop.$$
>   
>   	echo "Test $mkfs_opts with $with_compress" >>$seqres.full
>   
> @@ -54,9 +71,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	unset subvol_pid
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
> +	unset defrag_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/068 b/tests/btrfs/068
> index 19e37010..7ab6feca 100755
> --- a/tests/btrfs/068
> +++ b/tests/btrfs/068
> @@ -11,6 +11,22 @@
>   . ./common/preamble
>   _begin_fstest auto subvol remount compress scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
> +		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	fi
> +	if [ ! -z "$remount_pid" ]; then
> +		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -21,11 +37,12 @@ _require_scratch_nocheck
>   _require_scratch_dev_pool 4
>   _btrfs_get_profile_configs
>   
> +stop_file=$TEST_DIR/$seq.stop.$$
> +
>   run_test()
>   {
>   	local mkfs_opts=$1
>   	local subvol_mnt=$TEST_DIR/$seq.mnt
> -	local stop_file=$TEST_DIR/$seq.stop.$$
>   
>   	echo "Test $mkfs_opts with $with_compress" >>$seqres.full
>   
> @@ -54,9 +71,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
> +	unset subvol_pid
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	unset remount_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/069 b/tests/btrfs/069
> index ad1609d4..3fbfecdb 100755
> --- a/tests/btrfs/069
> +++ b/tests/btrfs/069
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto replace scrub volume
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$replace_pid" ]; then
> +		_btrfs_kill_stress_replace_pid $replace_pid
> +	fi
> +	if [ ! -z "$scrub_pid" ]; then
> +		_btrfs_kill_stress_scrub_pid $scrub_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -59,8 +75,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
> +	unset scrub_pid
>   	_btrfs_kill_stress_replace_pid $replace_pid
> +	unset replace_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/070 b/tests/btrfs/070
> index 3054c270..11fddc86 100755
> --- a/tests/btrfs/070
> +++ b/tests/btrfs/070
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto replace defrag compress volume scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$replace_pid" ]; then
> +		_btrfs_kill_stress_replace_pid $replace_pid
> +	fi
> +	if [ ! -z "$defrag_pid" ]; then
> +		_btrfs_kill_stress_defrag_pid $defrag_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -60,8 +76,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_replace_pid $replace_pid
> +	unset replace_pid
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
> +	unset defrag_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/071 b/tests/btrfs/071
> index 36b39341..1a91ec45 100755
> --- a/tests/btrfs/071
> +++ b/tests/btrfs/071
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto replace remount compress volume scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$replace_pid" ]; then
> +		_btrfs_kill_stress_replace_pid $replace_pid
> +	fi
> +	if [ ! -z "$remount_pid" ]; then
> +		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -59,8 +75,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_replace_pid $replace_pid
> +	unset replace_pid
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	unset remount_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/072 b/tests/btrfs/072
> index 505d0b57..e66e49c9 100755
> --- a/tests/btrfs/072
> +++ b/tests/btrfs/072
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto scrub defrag compress
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$defrag_pid" ]; then
> +		_btrfs_kill_stress_defrag_pid $defrag_pid
> +	fi
> +	if [ ! -z "$scrub_pid" ]; then
> +		_btrfs_kill_stress_scrub_pid $scrub_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -52,9 +68,12 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
> +	unset defrag_pid
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
> +	unset scrub_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/073 b/tests/btrfs/073
> index 50358286..e6cfd92a 100755
> --- a/tests/btrfs/073
> +++ b/tests/btrfs/073
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto scrub remount compress
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$remount_pid" ]; then
> +		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	fi
> +	if [ ! -z "$scrub_pid" ]; then
> +		_btrfs_kill_stress_scrub_pid $scrub_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -51,8 +67,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	unset remount_pid
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
> +	unset scrub_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
> diff --git a/tests/btrfs/074 b/tests/btrfs/074
> index 6e93b36a..1dd88bcd 100755
> --- a/tests/btrfs/074
> +++ b/tests/btrfs/074
> @@ -10,6 +10,22 @@
>   . ./common/preamble
>   _begin_fstest auto defrag remount compress scrub
>   
> +_cleanup()
> +{
> +	cd /
> +	rm -rf $tmp.*
> +	if [ ! -z "$remount_pid" ]; then
> +		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	fi
> +	if [ ! -z "$defrag_pid" ]; then
> +		_btrfs_kill_stress_defrag_pid $defrag_pid
> +	fi
> +	if [ ! -z "$fsstress_pid" ]; then
> +		kill $fsstress_pid &> /dev/null
> +		wait $fsstress_pid &> /dev/null
> +	fi
> +}
> +
>   # Import common functions.
>   . ./common/filter
>   
> @@ -52,8 +68,11 @@ run_test()
>   
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
> +	unset fsstress_pid
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
> +	unset remount_pid
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
> +	unset defrag_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
>   	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff mbox series

Patch

diff --git a/tests/btrfs/060 b/tests/btrfs/060
index 53cbd3a0..f74d9593 100755
--- a/tests/btrfs/060
+++ b/tests/btrfs/060
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto balance subvol scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
+		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	fi
+	if [ ! -z "$balance_pid" ]; then
+		_btrfs_kill_stress_balance_pid $balance_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -20,11 +36,12 @@  _require_scratch_nocheck
 _require_scratch_dev_pool 4
 _btrfs_get_profile_configs
 
+stop_file=$TEST_DIR/$seq.stop.$$
+
 run_test()
 {
 	local mkfs_opts=$1
 	local subvol_mnt=$TEST_DIR/$seq.mnt
-	local stop_file=$TEST_DIR/$seq.stop.$$
 
 	echo "Test $mkfs_opts" >>$seqres.full
 
@@ -53,9 +70,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	unset subvol_pid
 	_btrfs_kill_stress_balance_pid $balance_pid
+	unset balance_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/061 b/tests/btrfs/061
index b8b2706c..fec90882 100755
--- a/tests/btrfs/061
+++ b/tests/btrfs/061
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto balance scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$balance_pid" ]; then
+		_btrfs_kill_stress_balance_pid $balance_pid
+	fi
+	if [ ! -z "$scrub_pid" ]; then
+		_btrfs_kill_stress_scrub_pid $scrub_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -51,8 +67,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_balance_pid $balance_pid
+	unset balance_pid
 	_btrfs_kill_stress_scrub_pid $scrub_pid
+	unset scrub_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/062 b/tests/btrfs/062
index 59d581be..0b57681f 100755
--- a/tests/btrfs/062
+++ b/tests/btrfs/062
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto balance defrag compress scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$balance_pid" ]; then
+		_btrfs_kill_stress_balance_pid $balance_pid
+	fi
+	if [ ! -z "$defrag_pid" ]; then
+		_btrfs_kill_stress_defrag_pid $defrag_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -52,8 +68,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_balance_pid $balance_pid
+	unset balance_pid
 	_btrfs_kill_stress_defrag_pid $defrag_pid
+	unset defrag_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/063 b/tests/btrfs/063
index 5ee2837f..99d9d2c1 100755
--- a/tests/btrfs/063
+++ b/tests/btrfs/063
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto balance remount compress scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$balance_pid" ]; then
+		_btrfs_kill_stress_balance_pid $balance_pid
+	fi
+	if [ ! -z "$remount_pid" ]; then
+		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -51,8 +67,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_balance_pid $balance_pid
+	unset balance_pid
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	unset remount_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/064 b/tests/btrfs/064
index 9e0b3b30..663442c6 100755
--- a/tests/btrfs/064
+++ b/tests/btrfs/064
@@ -12,6 +12,22 @@ 
 . ./common/preamble
 _begin_fstest auto balance replace volume scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$balance_pid" ]; then
+		_btrfs_kill_stress_balance_pid $balance_pid
+	fi
+	if [ ! -z "$replace_pid" ]; then
+		_btrfs_kill_stress_replace_pid $replace_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -63,8 +79,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_balance_pid $balance_pid
+	unset balance_pid
 	_btrfs_kill_stress_replace_pid $replace_pid
+	unset replace_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/065 b/tests/btrfs/065
index f9e43cdc..b1e54fc8 100755
--- a/tests/btrfs/065
+++ b/tests/btrfs/065
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto subvol replace volume scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
+		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	fi
+	if [ ! -z "$replace_pid" ]; then
+		_btrfs_kill_stress_replace_pid $replace_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -21,12 +37,13 @@  _require_scratch_dev_pool 5
 _require_scratch_dev_pool_equal_size
 _btrfs_get_profile_configs replace
 
+stop_file=$TEST_DIR/$seq.stop.$$
+
 run_test()
 {
 	local mkfs_opts=$1
 	local saved_scratch_dev_pool=$SCRATCH_DEV_POOL
 	local subvol_mnt=$TEST_DIR/$seq.mnt
-	local stop_file=$TEST_DIR/$seq.stop.$$
 
 	echo "Test $mkfs_opts" >>$seqres.full
 
@@ -61,9 +78,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	unset subvol_pid
 	_btrfs_kill_stress_replace_pid $replace_pid
+	unset replace_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/066 b/tests/btrfs/066
index b6f904ac..feb6062e 100755
--- a/tests/btrfs/066
+++ b/tests/btrfs/066
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto subvol scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
+		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	fi
+	if [ ! -z "$scrub_pid" ]; then
+		_btrfs_kill_stress_scrub_pid $scrub_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -20,11 +36,12 @@  _require_scratch_nocheck
 _require_scratch_dev_pool 4
 _btrfs_get_profile_configs
 
+stop_file=$TEST_DIR/$seq.stop.$$
+
 run_test()
 {
 	local mkfs_opts=$1
 	local subvol_mnt=$TEST_DIR/$seq.mnt
-	local stop_file=$TEST_DIR/$seq.stop.$$
 
 	echo "Test $mkfs_opts" >>$seqres.full
 
@@ -53,9 +70,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	unset subvol_pid
 	_btrfs_kill_stress_scrub_pid $scrub_pid
+	unset scrub_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/067 b/tests/btrfs/067
index 7be09d52..0bbfe83f 100755
--- a/tests/btrfs/067
+++ b/tests/btrfs/067
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto subvol defrag compress scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
+		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	fi
+	if [ ! -z "$defrag_pid" ]; then
+		_btrfs_kill_stress_defrag_pid $defrag_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -20,12 +36,13 @@  _require_scratch_nocheck
 _require_scratch_dev_pool 4
 _btrfs_get_profile_configs
 
+stop_file=$TEST_DIR/$seq.stop.$$
+
 run_test()
 {
 	local mkfs_opts=$1
 	local with_compress=$2
 	local subvol_mnt=$TEST_DIR/$seq.mnt
-	local stop_file=$TEST_DIR/$seq.stop.$$
 
 	echo "Test $mkfs_opts with $with_compress" >>$seqres.full
 
@@ -54,9 +71,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	unset subvol_pid
 	_btrfs_kill_stress_defrag_pid $defrag_pid
+	unset defrag_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/068 b/tests/btrfs/068
index 19e37010..7ab6feca 100755
--- a/tests/btrfs/068
+++ b/tests/btrfs/068
@@ -11,6 +11,22 @@ 
 . ./common/preamble
 _begin_fstest auto subvol remount compress scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$stop_file" ] && [ ! -z "$subvol_pid" ]; then
+		_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	fi
+	if [ ! -z "$remount_pid" ]; then
+		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -21,11 +37,12 @@  _require_scratch_nocheck
 _require_scratch_dev_pool 4
 _btrfs_get_profile_configs
 
+stop_file=$TEST_DIR/$seq.stop.$$
+
 run_test()
 {
 	local mkfs_opts=$1
 	local subvol_mnt=$TEST_DIR/$seq.mnt
-	local stop_file=$TEST_DIR/$seq.stop.$$
 
 	echo "Test $mkfs_opts with $with_compress" >>$seqres.full
 
@@ -54,9 +71,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
+	unset subvol_pid
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	unset remount_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/069 b/tests/btrfs/069
index ad1609d4..3fbfecdb 100755
--- a/tests/btrfs/069
+++ b/tests/btrfs/069
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto replace scrub volume
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$replace_pid" ]; then
+		_btrfs_kill_stress_replace_pid $replace_pid
+	fi
+	if [ ! -z "$scrub_pid" ]; then
+		_btrfs_kill_stress_scrub_pid $scrub_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -59,8 +75,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_scrub_pid $scrub_pid
+	unset scrub_pid
 	_btrfs_kill_stress_replace_pid $replace_pid
+	unset replace_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/070 b/tests/btrfs/070
index 3054c270..11fddc86 100755
--- a/tests/btrfs/070
+++ b/tests/btrfs/070
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto replace defrag compress volume scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$replace_pid" ]; then
+		_btrfs_kill_stress_replace_pid $replace_pid
+	fi
+	if [ ! -z "$defrag_pid" ]; then
+		_btrfs_kill_stress_defrag_pid $defrag_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -60,8 +76,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_replace_pid $replace_pid
+	unset replace_pid
 	_btrfs_kill_stress_defrag_pid $defrag_pid
+	unset defrag_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/071 b/tests/btrfs/071
index 36b39341..1a91ec45 100755
--- a/tests/btrfs/071
+++ b/tests/btrfs/071
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto replace remount compress volume scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$replace_pid" ]; then
+		_btrfs_kill_stress_replace_pid $replace_pid
+	fi
+	if [ ! -z "$remount_pid" ]; then
+		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -59,8 +75,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_replace_pid $replace_pid
+	unset replace_pid
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	unset remount_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/072 b/tests/btrfs/072
index 505d0b57..e66e49c9 100755
--- a/tests/btrfs/072
+++ b/tests/btrfs/072
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto scrub defrag compress
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$defrag_pid" ]; then
+		_btrfs_kill_stress_defrag_pid $defrag_pid
+	fi
+	if [ ! -z "$scrub_pid" ]; then
+		_btrfs_kill_stress_scrub_pid $scrub_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -52,9 +68,12 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 
 	_btrfs_kill_stress_defrag_pid $defrag_pid
+	unset defrag_pid
 	_btrfs_kill_stress_scrub_pid $scrub_pid
+	unset scrub_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/073 b/tests/btrfs/073
index 50358286..e6cfd92a 100755
--- a/tests/btrfs/073
+++ b/tests/btrfs/073
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto scrub remount compress
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$remount_pid" ]; then
+		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	fi
+	if [ ! -z "$scrub_pid" ]; then
+		_btrfs_kill_stress_scrub_pid $scrub_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -51,8 +67,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	unset remount_pid
 	_btrfs_kill_stress_scrub_pid $scrub_pid
+	unset scrub_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/btrfs/074 b/tests/btrfs/074
index 6e93b36a..1dd88bcd 100755
--- a/tests/btrfs/074
+++ b/tests/btrfs/074
@@ -10,6 +10,22 @@ 
 . ./common/preamble
 _begin_fstest auto defrag remount compress scrub
 
+_cleanup()
+{
+	cd /
+	rm -rf $tmp.*
+	if [ ! -z "$remount_pid" ]; then
+		_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	fi
+	if [ ! -z "$defrag_pid" ]; then
+		_btrfs_kill_stress_defrag_pid $defrag_pid
+	fi
+	if [ ! -z "$fsstress_pid" ]; then
+		kill $fsstress_pid &> /dev/null
+		wait $fsstress_pid &> /dev/null
+	fi
+}
+
 # Import common functions.
 . ./common/filter
 
@@ -52,8 +68,11 @@  run_test()
 
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
+	unset fsstress_pid
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
+	unset remount_pid
 	_btrfs_kill_stress_defrag_pid $defrag_pid
+	unset defrag_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
 	$BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1