| |
| case $1 in |
| raid* | linear ) |
| grep -s "active $1 " /proc/mdstat > /dev/null || { |
| echo >&2 "ERROR active $1 not found" ; cat /proc/mdstat ; exit 1;} |
| ;; |
| resync | recovery ) |
| sleep 0.1 |
| grep -s $1 /proc/mdstat > /dev/null || { |
| echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1; } |
| ;; |
| |
| nosync ) |
| sleep 0.5 |
| grep -s 're[synccovery]* =' > /dev/null /proc/mdstat && { |
| echo >&2 "ERROR resync or recovery is happening!"; cat /proc/mdstat ; exit 1; } |
| ;; |
| |
| wait ) |
| sleep 0.1 |
| while grep 're[synccovery]* =' > /dev/null /proc/mdstat |
| do sleep 2; |
| done |
| ;; |
| |
| state ) |
| grep -s "blocks.*\[$2\]\$" /proc/mdstat > /dev/null || { |
| echo >&2 "ERROR state $2 not found!"; cat /proc/mdstat ; exit 1; } |
| sleep 0.5 |
| ;; |
| |
| * ) echo >&2 ERROR unknown check $1 ; exit 1; |
| esac |
| |
| exit 0 |