]> git.ipfire.org Git - thirdparty/mdadm.git/blobdiff - tests/env-imsm-template
tests, imsm: Calculate expected array_size in proper way
[thirdparty/mdadm.git] / tests / env-imsm-template
index 40479b48d88b6b0f9c9d26ac264af7d851a638f9..d5247714a75d7cb6700dab2cea157f6454131384 100644 (file)
@@ -14,13 +14,31 @@ imsm_check() {
         t_offset=$7
         t_chunk=$8
 
-       if [ $t_level -ne 1 ]; then
-          t_rd_size=$((t_rd_size & ~(t_chunk - 1)))
-       else
+       t_rd_size=$((t_rd_size & ~(1024 - 1)))
+
+       if [ $t_level -eq 1 ]; then
           t_chunk=64
        fi
-       t_size=$((t_size/1024))
-       t_size=$((t_size*1024))
+
+       t_num_data_disks=0
+
+       case $t_level in
+       0)
+               t_num_data_disks=$t_num_disks
+               ;;
+       1)
+               t_num_data_disks=1
+               ;;
+       5)
+               t_num_data_disks=$((t_num_disks-1))
+               ;;
+       10)
+               t_num_data_disks=$((t_num_disks/2))
+               ;;
+       esac
+
+       t_size=$((t_rd_size*t_num_data_disks))
+
         err=0
 
         eval `stat -L -c "let major=0x%t; let minor=0x%T;" $t_member`