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 >