mdsize00=19840
# super1.0 round down to multiple of 2, subtract 8
mdsize1=19992
-# super1.1 for linear: round to multiple of 2, subtract 4
-mdsize1_l=19996
+mdsize1a=19988
+mdsize12=19988
+# super1.2 for linear: round to multiple of 2, subtract 4
+mdsize1_l=18976
+mdsize2_l=18976
# subtract another 4 for bitmaps
mdsize1b=19988
mdsize11=19992
+mdsize11a=18944
mdsize12=19988
# ddf needs bigger devices as 32Meg is reserved!
mdadm -CR $md0 -l linear -n3 $dev0 $dev1 $dev2
check linear
-testdev $md0 3 $mdsize1_l 1
+testdev $md0 3 $mdsize2_l 1
mdadm -S $md0
# now with version-0.90 superblock
mdadm -CR $md1 -l multipath -n2 $path0 $path1
-testdev $md1 1 $mdsize1 1
+testdev $md1 1 $mdsize12 1
mdadm $md1 -f $path0
rotest $md1
-testdev $md1 1 $mdsize1 1
+testdev $md1 1 $mdsize12 1
mdadm $md1 -r $path0
mdadm $md1 -a $path0
rotest $md1
-testdev $md1 1 $mdsize1 1
+testdev $md1 1 $mdsize12 1
mdadm $md1 -f $path1
mdadm $md1 -r $path1
rotest $md1
-testdev $md1 1 $mdsize1 1
+testdev $md1 1 $mdsize12 1
mdadm -S $md1
mdadm -CR $md0 -l raid0 -n3 $dev0 $dev1 $dev2
check raid0
-testdev $md0 3 $mdsize1_l 512
+testdev $md0 3 $mdsize2_l 512
mdadm -S $md0
# now with version-0.90 superblock
mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
check resync
check raid1
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
mdadm -S $md0
# now with version-0.90 superblock, spare
do
case $e in
0.90 ) sz=$mdsize0 ;;
- 1 ) sz=$mdsize1 ;;
+ 1 ) sz=$mdsize2_l ;;
+ 1.0 ) sz=$mdsize1 ;;
1.1 ) sz=$mdsize1_l ;;
- 1.2 ) sz=$mdsize11 ;;
+ 1.2 ) sz=$mdsize2_l ;;
esac
mdadm -CRf $md0 --level linear -e $e --raid-disks=1 $dev1
testdev $md0 1 $sz 1
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 1 $mdsize11 1
+testdev $md0 1 $mdsize1_l 1
mdadm --grow $md0 --size $[size/2]
check nosync
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 3 $[size-4] 128
+testdev $md0 3 $[mdsize1_l] 128
mdadm --grow $md0 --size $[size/2]
check nosync
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 2 $[size-4] 128
+testdev $md0 2 $[mdsize1_l] 128
mdadm --grow $md0 --size $[size/2]
check nosync
mdadm -CR $md2 -l0 -n3 $dev0 $dev1 $dev2
check raid0
-tst="testdev $md2 3 $mdsize1 512"
+tst="testdev $md2 3 $mdsize1_l 512"
$tst
uuid=`mdadm -Db $md2 | sed 's/.*UUID=//'`
mdadm -S $md2
rm -f $bmf
mdadm --create --run $md0 --level=1 -n2 --delay=1 --bitmap $bmf $dev1 $dev2
check wait
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
mdadm -S $md0
mdadm --assemble $md0 --bitmap=$bmf $dev1 $dev2
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
dirty1=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
exit 1
fi
mdadm $md0 -f $dev1
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
sleep 4
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
if [ $dirty3 -lt 400 ]
#
mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
check wait
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
bmf=$targetdir/bm
rm -f $bmf
sleep 4
dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
#
mdadm --create --run $md0 -l 1 -n 2 $dev1 $dev2
check wait
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
#mdadm -E $dev1
mdadm --grow $md0 --bitmap=internal --bitmap-chunk=4 --delay=1 || { mdadm -X $dev2 ; exit 1; }
sleep 4
dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
sleep 4
dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
mdadm -CR $md0 -l1 -n2 -binternal --bitmap-chunk=4 -d1 $dev1 $dev2
check resync
check wait
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
sleep 4
mdadm $md0 -f $dev2
mdadm $md0 -f $dev2
sleep 1
mdadm $md0 -r $dev2
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
mdadm $md0 -a $dev2
check wait
cmp --ignore-initial=$[16*512] --bytes=$[$mdsize0*1024] $dev1 $dev2
# create a raid1 array with a wrmostly device
mdadm -CR $md0 -l1 -n3 $dev0 $dev1 --write-mostly $dev2
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
# unfortunately, we cannot measure if any read requests are going to $dev2
mdadm -S $md0
mdadm -CR $md0 -l1 -n3 --write-behind --bitmap=internal --bitmap-chunk=4 $dev0 $dev1 --write-mostly $dev2
-testdev $md0 1 $mdsize1 1
+testdev $md0 1 $mdsize1a 1
mdadm -S $md0
mdadm -Ss
mdadm -As -c /dev/null --homehost=testing -vvv
-testdev $md1 1 $mdsize1 1
-testdev $md2 1 $mdsize1 1
-testdev $md0 2 $mdsize11 512
+testdev $md1 1 $mdsize1a 1
+testdev $md2 1 $mdsize1a 1
+testdev $md0 2 $mdsize11a 512
mdadm -Ss
mdadm --zero-superblock $dev0 $dev1 $dev2 $dev3
mdadm -CR $md0 -l0 -n2 $md1 $dev2 --homehost=testing
mdadm -Ss
mdadm -As -c /dev/null --homehost=testing -vvv
-testdev $md1 1 $mdsize1 1
-testdev $md0 1 $[mdsize1+mdsize11] 512
+testdev $md1 1 $mdsize1a 1
+testdev $md0 1 $[mdsize1a+mdsize11a-1024] 512
mdadm -Ss
dotest() {
sleep 0.5
check wait
- testdev $md0 $1 $mdsize1 64 nd
+ testdev $md0 $1 19968 64 nd
blockdev --flushbufs $md0
cmp -s -n $[textK*1024] $md0 /tmp/RandFile || { echo cmp failed; exit 2; }
# write something new - shift chars 4 space
bu=/tmp/md-test-backup
rm -f $bu
mdadm -CR $md0 -l1 -n2 -x1 $dev0 $dev1 $dev2 -z 19968
-testdev $md0 1 $mdsize1 64
+testdev $md0 1 $mdsize1a 64
dd if=/tmp/RandFile of=$md0
dotest 1