Re: [PATCH] common/btrfs: avoid reinitialization of unsupported profile array

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Wed, Jan 11, 2023 at 11:58:27AM +0100, David Disseldorp wrote:
> The _btrfs_get_profile_configs() unsupported array doesn't change
> between configs, so avoid reinitializing it on each loop iteration.
> 
> Signed-off-by: David Disseldorp <ddiss@xxxxxxx>
> ---

Good to me,

Reviewed-by: Zorro Lang <zlang@xxxxxxxxxx>

>  common/btrfs | 66 ++++++++++++++++++++++++++--------------------------
>  1 file changed, 33 insertions(+), 33 deletions(-)
> 
> diff --git a/common/btrfs b/common/btrfs
> index ee673a93..9531c914 100644
> --- a/common/btrfs
> +++ b/common/btrfs
> @@ -201,6 +201,39 @@ _btrfs_get_profile_configs()
>  		return
>  	fi
>  
> +	local unsupported=()
> +	if [ "$1" == "replace" ]; then
> +		# We can't do replace with these profiles because they
> +		# imply only one device ($SCRATCH_DEV), and we need to
> +		# keep $SCRATCH_DEV around for _scratch_mount
> +		# and _check_scratch_fs.
> +		unsupported+=(
> +			"dup"
> +		)
> +	elif [ "$1" == "replace-missing" ]; then
> +		# We can't replace missing devices with these profiles
> +		# because there isn't enough redundancy.
> +		unsupported+=(
> +			"single"
> +			"dup"
> +			"raid0"
> +		)
> +	fi
> +
> +	if _scratch_btrfs_is_zoned; then
> +		# Zoned btrfs only supports SINGLE profile
> +		unsupported+=(
> +			"dup"
> +			"raid0"
> +			"raid1"
> +			"raid1c3"
> +			"raid1c4"
> +			"raid10"
> +			"raid5"
> +			"raid6"
> +		)
> +	fi
> +
>  	if [ -z "$BTRFS_PROFILE_CONFIGS" ]; then
>  		# Default configurations to test.
>  		local configs=(
> @@ -222,39 +255,6 @@ _btrfs_get_profile_configs()
>  	for cfg in "${configs[@]}"; do
>  		local supported=true
>  		local profiles=(${cfg/:/ })
> -		if [ "$1" == "replace" ]; then
> -			# We can't do replace with these profiles because they
> -			# imply only one device ($SCRATCH_DEV), and we need to
> -			# keep $SCRATCH_DEV around for _scratch_mount
> -			# and _check_scratch_fs.
> -			local unsupported=(
> -				"dup"
> -			)
> -		elif [ "$1" == "replace-missing" ]; then
> -			# We can't replace missing devices with these profiles
> -			# because there isn't enough redundancy.
> -			local unsupported=(
> -				"single"
> -				"dup"
> -				"raid0"
> -			)
> -		else
> -			local unsupported=()
> -		fi
> -
> -		if _scratch_btrfs_is_zoned; then
> -			# Zoned btrfs only supports SINGLE profile
> -			unsupported+=(
> -				"dup"
> -				"raid0"
> -				"raid1"
> -				"raid1c3"
> -				"raid1c4"
> -				"raid10"
> -				"raid5"
> -				"raid6"
> -			)
> -		fi
>  
>  		for unsupp in "${unsupported[@]}"; do
>  			if [ "${profiles[0]}" == "$unsupp" -o "${profiles[1]}" == "$unsupp" ]; then
> -- 
> 2.35.3
> 




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux