common/rc: Fix check for SCRATCH_DEV_POOL presence in _scratch_dev_pool_get
authorNikolay Borisov <nborisov@suse.com>
Mon, 1 Nov 2021 13:56:58 +0000 (15:56 +0200)
committerEryu Guan <guaneryu@gmail.com>
Sun, 7 Nov 2021 12:54:26 +0000 (20:54 +0800)
Current check is buggy because it can never trigger as even if
SCRATCH_DEV_POOL is not defined config_ndevs will get a value of 0
from 'wc -w', this in turn makes 'typeset -p config_ndevs' always
return 0, triggering the existing check a noop.

Fix this by explicitly checking for the presence of SCHRATC_DEV_POOL

Signed-off-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/rc

index 751974539e6285388631c2612c7d99aec217c011..0d261184c11e87c8670e281d51525faf3e0e286f 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -917,15 +917,15 @@ _scratch_dev_pool_get()
                _fail "Usage: _scratch_dev_pool_get ndevs"
        fi
 
-       local test_ndevs=$1
-       local config_ndevs=`echo $SCRATCH_DEV_POOL| wc -w`
-       local -a devs="( $SCRATCH_DEV_POOL )"
-
-       typeset -p config_ndevs >/dev/null 2>&1
+       typeset -p SCRATCH_DEV_POOL >/dev/null 2>&1
        if [ $? -ne 0 ]; then
                _fail "Bug: cant find SCRATCH_DEV_POOL ndevs"
        fi
 
+       local test_ndevs=$1
+       local config_ndevs=`echo $SCRATCH_DEV_POOL| wc -w`
+       local -a devs="( $SCRATCH_DEV_POOL )"
+
        if [ $config_ndevs -lt $test_ndevs ]; then
                _notrun "Need at least test requested number of ndevs $test_ndevs"
        fi