--- /usr/share/mdadm/checkarray	2011-12-06 04:41:09.000000000 +0400
+++ ./checkarray	2011-12-17 17:05:48.000000000 +0400
@@ -165,8 +165,15 @@
 
   case "$action" in
     idle)
+      chunk_size=$(cat /sys/block/$array/md/chunk_size)
+      # set one to safe value if raid level has no chunk_size (e.g., raid 1):
+      [ $chunk_size -lt 1 ] && chunk_size=1
+      completed=$(cut -d ' ' -f1 /sys/block/$array/md/sync_completed)
+      [ $completed = "none" ] && completed=0
       echo $action > $SYNC_ACTION_CTL
       [ $quiet -lt 1 ] && echo "$PROGNAME: I: cancel request queued for array $array." >&2
+      # sync_min must be a multiple of chunk_size:
+      echo $(($completed - $completed%$chunk_size)) > /sys/block/$array/md/sync_min
       ;;
 
     check)
