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;}
|
||||
;;
|
||||
resync | recovery | reshape)
|
||||
sleep 0.5
|
||||
grep -s $1 /proc/mdstat > /dev/null || {
|
||||
echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1; }
|
||||
;;
|
||||
cnt=5
|
||||
while ! grep -s $1 /proc/mdstat > /dev/null
|
||||
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 )
|
||||
sleep 0.5
|
||||
|
@ -204,7 +212,8 @@ check() {
|
|||
p=`cat /proc/sys/dev/raid/speed_limit_max`
|
||||
echo 2000000 > /proc/sys/dev/raid/speed_limit_max
|
||||
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;
|
||||
done
|
||||
echo $p > /proc/sys/dev/raid/speed_limit_max
|
||||
|
|
Loading…
Reference in New Issue