test: check sync_action as well when checking for an action.
Some actions only appear in /proc/mdstat after a little delay, so check in sync_action as well. This applies when checking for recovery etc, and when waiting for idle. Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
602b916951
commit
a76b3a345b
19
test
19
test
|
@ -188,10 +188,18 @@ check() {
|
||||||
echo >&2 "ERROR algorithm $2 not found"; cat /proc/mdstat; exit 1;}
|
echo >&2 "ERROR algorithm $2 not found"; cat /proc/mdstat; exit 1;}
|
||||||
;;
|
;;
|
||||||
resync | recovery | reshape)
|
resync | recovery | reshape)
|
||||||
sleep 0.5
|
cnt=5
|
||||||
grep -s $1 /proc/mdstat > /dev/null || {
|
while ! grep -s $1 /proc/mdstat > /dev/null
|
||||||
echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1; }
|
do
|
||||||
;;
|
if [ $cnt -gt 0 ] && grep -v idle /sys/block/md*/md/sync_action > /dev/null
|
||||||
|
then # Something isn't idle - wait a bit
|
||||||
|
sleep 0.5
|
||||||
|
cnt=$[cnt-1]
|
||||||
|
else
|
||||||
|
echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
|
||||||
nosync )
|
nosync )
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
@ -204,7 +212,8 @@ check() {
|
||||||
p=`cat /proc/sys/dev/raid/speed_limit_max`
|
p=`cat /proc/sys/dev/raid/speed_limit_max`
|
||||||
echo 2000000 > /proc/sys/dev/raid/speed_limit_max
|
echo 2000000 > /proc/sys/dev/raid/speed_limit_max
|
||||||
sleep 0.1
|
sleep 0.1
|
||||||
while grep -E '(resync|recovery|reshape|check|repair) *=' > /dev/null /proc/mdstat /sys/block/md*/md/sync_action
|
while grep -E '(resync|recovery|reshape|check|repair) *=' > /dev/null /proc/mdstat ||
|
||||||
|
grep -v idle > /dev/null /sys/block/md*/md/sync_action
|
||||||
do sleep 0.5;
|
do sleep 0.5;
|
||||||
done
|
done
|
||||||
echo $p > /proc/sys/dev/raid/speed_limit_max
|
echo $p > /proc/sys/dev/raid/speed_limit_max
|
||||||
|
|
Loading…
Reference in New Issue