7204495377
There 'rv' tests were confused and sometimes wrong. This resulted in not writing the second bsb. Also fix the test script so the the critical section is long enough that we have some hope of interrupting it. Signed-off-by: NeilBrown <neilb@suse.de>
40 lines
850 B
Plaintext
40 lines
850 B
Plaintext
|
|
#
|
|
# test interrupting and restarting raid5 reshape.
|
|
set -x
|
|
devs="$dev1"
|
|
st=UU
|
|
for disks in 2 3 4 5
|
|
do
|
|
eval devs=\"$devs \$dev$disks\"
|
|
st=U$st
|
|
for d in $devs
|
|
do dd if=/dev/urandom of=$d bs=1024 || true
|
|
done
|
|
|
|
case $disks in
|
|
2 | 3) chunk=1024;;
|
|
4 ) chunk=512;;
|
|
5 ) chunk=256;;
|
|
esac
|
|
|
|
mdadm -CR $md0 -amd -l5 -c $chunk -n$disks --assume-clean $devs
|
|
mdadm $md0 --add $dev6
|
|
echo 20 > /proc/sys/dev/raid/speed_limit_max
|
|
mdadm --grow $md0 -n $[disks+1]
|
|
check reshape
|
|
check state $st
|
|
mdadm --stop $md0
|
|
mdadm --assemble $md0 $devs $dev6
|
|
check reshape
|
|
echo 2000 > /proc/sys/dev/raid/speed_limit_max
|
|
check wait
|
|
echo check > /sys/block/md0/md/sync_action
|
|
check wait
|
|
mm=`cat /sys/block/md0/md/mismatch_cnt`
|
|
if [ $mm -gt 0 ]
|
|
then echo >&2 "ERROR mismatch_cnt non-zero : $mm" ; exit 1
|
|
fi
|
|
mdadm -S $md0
|
|
done
|