diff mbox series

[08/10] btrfs: add helper to stop background process running _btrfs_stress_subvolume

Message ID 478d09248cf2a98a59853718197104735edd52c7.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>

We have this logic to stop a process running _btrfs_stress_subvolume()
spread in several test cases:

   touch $stop_file
   wait $subvol_pid

Add a helper to encapsulate that logic and also remove the stop file after
the process terminated as there's no point having it around anymore.

This will help to avoid repeating the same code again several times in
upcoming changes.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
---
 common/btrfs    | 12 ++++++++++++
 tests/btrfs/060 |  3 +--
 tests/btrfs/065 |  3 +--
 tests/btrfs/066 |  3 +--
 tests/btrfs/067 |  3 +--
 tests/btrfs/068 |  3 +--
 6 files changed, 17 insertions(+), 10 deletions(-)

Comments

Anand Jain March 28, 2024, 9:36 a.m. UTC | #1
On 3/28/24 01:11, fdmanana@kernel.org wrote:
> From: Filipe Manana <fdmanana@suse.com>
> 
> We have this logic to stop a process running _btrfs_stress_subvolume()
> spread in several test cases:
> 
>     touch $stop_file
>     wait $subvol_pid
> 
> Add a helper to encapsulate that logic and also remove the stop file after
> the process terminated as there's no point having it around anymore.
> 
> This will help to avoid repeating the same code again several times in
> upcoming changes.
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>

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

Thanks, Anand

> ---
>   common/btrfs    | 12 ++++++++++++
>   tests/btrfs/060 |  3 +--
>   tests/btrfs/065 |  3 +--
>   tests/btrfs/066 |  3 +--
>   tests/btrfs/067 |  3 +--
>   tests/btrfs/068 |  3 +--
>   6 files changed, 17 insertions(+), 10 deletions(-)
> 
> diff --git a/common/btrfs b/common/btrfs
> index 6d7e7a68..e19a6ad1 100644
> --- a/common/btrfs
> +++ b/common/btrfs
> @@ -340,6 +340,18 @@ _btrfs_stress_subvolume()
>   	done
>   }
>   
> +# Kill a background process running _btrfs_stress_subvolume()
> +_btrfs_kill_stress_subvolume_pid()
> +{
> +	local subvol_pid=$1
> +	local stop_file=$2
> +
> +	touch $stop_file
> +	# Ignore if process already died.
> +	wait $subvol_pid &> /dev/null
> +	rm -f $stop_file
> +}
> +
>   # stress btrfs by running scrub in a loop
>   _btrfs_stress_scrub()
>   {
> diff --git a/tests/btrfs/060 b/tests/btrfs/060
> index 58167cc6..87823aba 100755
> --- a/tests/btrfs/060
> +++ b/tests/btrfs/060
> @@ -56,8 +56,7 @@ run_test()
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
>   
> -	touch $stop_file
> -	wait $subvol_pid
> +	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
>   	_btrfs_kill_stress_balance_pid $balance_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
> diff --git a/tests/btrfs/065 b/tests/btrfs/065
> index d2b04178..ddc28616 100755
> --- a/tests/btrfs/065
> +++ b/tests/btrfs/065
> @@ -64,8 +64,7 @@ run_test()
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
>   
> -	touch $stop_file
> -	wait $subvol_pid
> +	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
>   	_btrfs_kill_stress_replace_pid $replace_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
> diff --git a/tests/btrfs/066 b/tests/btrfs/066
> index 29821fdd..c7488602 100755
> --- a/tests/btrfs/066
> +++ b/tests/btrfs/066
> @@ -56,8 +56,7 @@ run_test()
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
>   
> -	touch $stop_file
> -	wait $subvol_pid
> +	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
>   	_btrfs_kill_stress_scrub_pid $scrub_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
> diff --git a/tests/btrfs/067 b/tests/btrfs/067
> index 2bb00b87..ebbec1be 100755
> --- a/tests/btrfs/067
> +++ b/tests/btrfs/067
> @@ -57,8 +57,7 @@ run_test()
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
>   
> -	touch $stop_file
> -	wait $subvol_pid
> +	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
>   	_btrfs_kill_stress_defrag_pid $defrag_pid
>   
>   	echo "Scrub the filesystem" >>$seqres.full
> diff --git a/tests/btrfs/068 b/tests/btrfs/068
> index db53254a..5f41fb74 100755
> --- a/tests/btrfs/068
> +++ b/tests/btrfs/068
> @@ -57,8 +57,7 @@ run_test()
>   	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
>   	wait $fsstress_pid
>   
> -	touch $stop_file
> -	wait $subvol_pid
> +	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
>   	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
>   
>   	echo "Scrub the filesystem" >>$seqres.full
diff mbox series

Patch

diff --git a/common/btrfs b/common/btrfs
index 6d7e7a68..e19a6ad1 100644
--- a/common/btrfs
+++ b/common/btrfs
@@ -340,6 +340,18 @@  _btrfs_stress_subvolume()
 	done
 }
 
+# Kill a background process running _btrfs_stress_subvolume()
+_btrfs_kill_stress_subvolume_pid()
+{
+	local subvol_pid=$1
+	local stop_file=$2
+
+	touch $stop_file
+	# Ignore if process already died.
+	wait $subvol_pid &> /dev/null
+	rm -f $stop_file
+}
+
 # stress btrfs by running scrub in a loop
 _btrfs_stress_scrub()
 {
diff --git a/tests/btrfs/060 b/tests/btrfs/060
index 58167cc6..87823aba 100755
--- a/tests/btrfs/060
+++ b/tests/btrfs/060
@@ -56,8 +56,7 @@  run_test()
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
 
-	touch $stop_file
-	wait $subvol_pid
+	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
 	_btrfs_kill_stress_balance_pid $balance_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
diff --git a/tests/btrfs/065 b/tests/btrfs/065
index d2b04178..ddc28616 100755
--- a/tests/btrfs/065
+++ b/tests/btrfs/065
@@ -64,8 +64,7 @@  run_test()
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
 
-	touch $stop_file
-	wait $subvol_pid
+	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
 	_btrfs_kill_stress_replace_pid $replace_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
diff --git a/tests/btrfs/066 b/tests/btrfs/066
index 29821fdd..c7488602 100755
--- a/tests/btrfs/066
+++ b/tests/btrfs/066
@@ -56,8 +56,7 @@  run_test()
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
 
-	touch $stop_file
-	wait $subvol_pid
+	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
 	_btrfs_kill_stress_scrub_pid $scrub_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
diff --git a/tests/btrfs/067 b/tests/btrfs/067
index 2bb00b87..ebbec1be 100755
--- a/tests/btrfs/067
+++ b/tests/btrfs/067
@@ -57,8 +57,7 @@  run_test()
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
 
-	touch $stop_file
-	wait $subvol_pid
+	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
 	_btrfs_kill_stress_defrag_pid $defrag_pid
 
 	echo "Scrub the filesystem" >>$seqres.full
diff --git a/tests/btrfs/068 b/tests/btrfs/068
index db53254a..5f41fb74 100755
--- a/tests/btrfs/068
+++ b/tests/btrfs/068
@@ -57,8 +57,7 @@  run_test()
 	echo "Wait for fsstress to exit and kill all background workers" >>$seqres.full
 	wait $fsstress_pid
 
-	touch $stop_file
-	wait $subvol_pid
+	_btrfs_kill_stress_subvolume_pid $subvol_pid $stop_file
 	_btrfs_kill_stress_remount_compress_pid $remount_pid $SCRATCH_MNT
 
 	echo "Scrub the filesystem" >>$seqres.full