dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/mdadm-test-Convert-code-formatto-use-Tab.patch

b7f731
From 662c349a5a995c270c8f7bcf0a4b4a0408c813fd Mon Sep 17 00:00:00 2001
b7f731
From: Zhilong Liu <zlliu@suse.com>
b7f731
Date: Wed, 7 Jun 2017 17:31:26 +0800
b7f731
Subject: [RHEL7.5 PATCH 154/169] mdadm/test: Convert code format to use
b7f731
 Tab
b7f731
b7f731
In case to make codes neat, this commit didn't change
b7f731
any codes, just tidy up and use Tab as code format.
b7f731
b7f731
Signed-off-by: Zhilong Liu <zlliu@suse.com>
b7f731
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
b7f731
---
b7f731
 test | 702 ++++++++++++++++++++++++++++++++++++-------------------------------
b7f731
 1 file changed, 378 insertions(+), 324 deletions(-)
b7f731
b7f731
diff --git a/test b/test
b7f731
index 13f1bda..7942d6e 100755
b7f731
--- a/test
b7f731
+++ b/test
b7f731
@@ -3,8 +3,9 @@
b7f731
 # run test suite for mdadm
b7f731
 user=`id -un`
b7f731
 if [ " $user" != " root" ]
b7f731
-then echo >&2 "test: testing can only be done as 'root'."
b7f731
-     exit 1;
b7f731
+then
b7f731
+	echo >&2 "test: testing can only be done as 'root'."
b7f731
+	exit 1
b7f731
 fi
b7f731
 
b7f731
 prefix='[0-9][0-9]'
b7f731
@@ -13,7 +14,7 @@ dir=`pwd`
b7f731
 mdadm=$dir/mdadm
b7f731
 if [ \! -x $mdadm ]
b7f731
 then
b7f731
-   echo >&2 "test: $mdadm isn't usable."
b7f731
+	echo >&2 "test: $mdadm isn't usable."
b7f731
 fi
b7f731
 
b7f731
 testdir="tests"
b7f731
@@ -25,8 +26,9 @@ echo "Testing on linux-$(uname -r) kernel"
b7f731
 
b7f731
 # Check whether to run multipath tests
b7f731
 modprobe multipath 2> /dev/null
b7f731
-if grep -s 'Personalities : .*multipath' > /dev/null /proc/mdstat ; then
b7f731
-    MULTIPATH="yes"
b7f731
+if grep -s 'Personalities : .*multipath' > /dev/null /proc/mdstat
b7f731
+then
b7f731
+	MULTIPATH="yes"
b7f731
 fi
b7f731
 INTEGRITY=yes
b7f731
 DEVTYPE=loop
b7f731
@@ -36,7 +38,9 @@ LVM_VOLGROUP=mdtest
b7f731
 export MDADM_NO_SYSTEMCTL=1
b7f731
 
b7f731
 # assume md0, md1, md2 exist in /dev
b7f731
-md0=/dev/md0 md1=/dev/md1 md2=/dev/md2
b7f731
+md0=/dev/md0
b7f731
+md1=/dev/md1
b7f731
+md2=/dev/md2
b7f731
 mdp0=/dev/md_d0
b7f731
 mdp1=/dev/md_d1
b7f731
 
b7f731
@@ -69,21 +73,21 @@ config=/tmp/mdadm.conf
b7f731
 cleanup() {
b7f731
 	udevadm settle
b7f731
 	$mdadm -Ssq 2> /dev/null
b7f731
-        case $DEVTYPE in
b7f731
-        loop)
b7f731
-	  for d in 0 1 2 3 4 5 6 7  8 9 10 11 12 13
b7f731
-	  do
b7f731
-	    losetup -d /dev/loop$d ; # rm -f $targetdir/mdtest$d
b7f731
-	    rm -f /dev/disk/by-path/loop*
b7f731
-	  done
b7f731
-          ;;
b7f731
-        lvm)
b7f731
-	  for d in 0 1 2 3 4 5 6 7  8 9 10 11 12 13
b7f731
-	  do
b7f731
-	    eval "lvremove --quiet -f \$dev$d"
b7f731
-	  done
b7f731
-          ;;
b7f731
-        esac
b7f731
+	case $DEVTYPE in
b7f731
+	loop)
b7f731
+		for d in 0 1 2 3 4 5 6 7  8 9 10 11 12 13
b7f731
+		do
b7f731
+			losetup -d /dev/loop$d # rm -f $targetdir/mdtest$d
b7f731
+			rm -f /dev/disk/by-path/loop*
b7f731
+		done
b7f731
+		;;
b7f731
+	lvm)
b7f731
+		for d in 0 1 2 3 4 5 6 7  8 9 10 11 12 13
b7f731
+		do
b7f731
+			eval "lvremove --quiet -f \$dev$d"
b7f731
+		done
b7f731
+		;;
b7f731
+	esac
b7f731
 }
b7f731
 
b7f731
 ctrl_c() {
b7f731
@@ -91,329 +95,377 @@ ctrl_c() {
b7f731
 }
b7f731
 
b7f731
 do_setup() {
b7f731
-  trap cleanup 0 1 3 15
b7f731
-  trap ctrl_c 2
b7f731
+	trap cleanup 0 1 3 15
b7f731
+	trap ctrl_c 2
b7f731
 
b7f731
-  # make sure there are no loop devices remaining.
b7f731
-  # udev started things can sometimes prevent them being stopped
b7f731
-  # immediately
b7f731
-  while grep loop /proc/partitions > /dev/null 2>&1
b7f731
-  do
b7f731
-    mdadm -Ss
b7f731
-    losetup -d /dev/loop[0-9]* 2> /dev/null
b7f731
-    sleep 1
b7f731
-  done
b7f731
-  devlist=
b7f731
-  for d in 0 1 2 3 4 5 6 7 8 9 10 11 12 13
b7f731
-  do
b7f731
-    sz=$size
b7f731
-    if [ $d -gt 7 ]; then sz=$ddfsize ; fi
b7f731
-    case $DEVTYPE in
b7f731
-    loop)
b7f731
-      [ -f $targetdir/mdtest$d ] || dd if=/dev/zero of=$targetdir/mdtest$d count=$sz bs=1K > /dev/null 2>&1
b7f731
-      # make sure udev doesn't touch
b7f731
-      mdadm --zero $targetdir/mdtest$d 2> /dev/null
b7f731
-      [ -b /dev/loop$d ] || mknod /dev/loop$d b 7 $d
b7f731
-      if [ $d -eq 7 ]
b7f731
-      then
b7f731
-        losetup /dev/loop$d $targetdir/mdtest6 # for multipath use
b7f731
-      else
b7f731
-        losetup /dev/loop$d $targetdir/mdtest$d
b7f731
-      fi
b7f731
-      eval dev$d=/dev/loop$d
b7f731
-      eval file$d=$targetdir/mdtest$d
b7f731
-      ;;
b7f731
-    lvm)
b7f731
-      unset MULTIPATH
b7f731
-      eval dev$d=/dev/mapper/${LVM_VOLGROUP}-mdtest$d
b7f731
-      if ! lvcreate --quiet -L ${sz}K -n mdtest$d $LVM_VOLGROUP; then
b7f731
-	  trap '' 0 # make sure lvremove is not called
b7f731
-	  eval echo error creating \$dev$d
b7f731
-	  exit 129
b7f731
-      fi
b7f731
-      ;;
b7f731
-    ram)
b7f731
-      unset MULTIPATH
b7f731
-      eval dev$d=/dev/ram$d
b7f731
-      ;;
b7f731
-    esac
b7f731
-    eval devlist=\"\$devlist \$dev$d\"
b7f731
-    eval devlist$d=\"\$devlist\"
b7f731
-   #" <-- add this quote to un-confuse vim syntax highlighting
b7f731
-  done
b7f731
-  path0=$dev6
b7f731
-  path1=$dev7
b7f731
-
b7f731
-  ulimit -c unlimited
b7f731
-  [ -f /proc/mdstat ] || modprobe md_mod
b7f731
-  echo 2000 > /proc/sys/dev/raid/speed_limit_max
b7f731
-  echo 0 > /sys/module/md_mod/parameters/start_ro
b7f731
+	# make sure there are no loop devices remaining.
b7f731
+	# udev started things can sometimes prevent them being stopped
b7f731
+	# immediately
b7f731
+	while grep loop /proc/partitions > /dev/null 2>&1
b7f731
+	do
b7f731
+		mdadm -Ss
b7f731
+		losetup -d /dev/loop[0-9]* 2> /dev/null
b7f731
+		sleep 1
b7f731
+	done
b7f731
+	devlist=
b7f731
+	for d in 0 1 2 3 4 5 6 7 8 9 10 11 12 13
b7f731
+	do
b7f731
+		sz=$size
b7f731
+		if [ $d -gt 7 ]
b7f731
+		then
b7f731
+			sz=$ddfsize
b7f731
+		fi
b7f731
+		case $DEVTYPE in
b7f731
+		loop)
b7f731
+			[ -f $targetdir/mdtest$d ] ||
b7f731
+				dd if=/dev/zero of=$targetdir/mdtest$d count=$sz bs=1K > /dev/null 2>&1
b7f731
+			# make sure udev doesn't touch
b7f731
+			mdadm --zero $targetdir/mdtest$d 2> /dev/null
b7f731
+			[ -b /dev/loop$d ] || mknod /dev/loop$d b 7 $d
b7f731
+			if [ $d -eq 7 ]
b7f731
+			then
b7f731
+				losetup /dev/loop$d $targetdir/mdtest6 # for multipath use
b7f731
+			else
b7f731
+				losetup /dev/loop$d $targetdir/mdtest$d
b7f731
+			fi
b7f731
+			eval dev$d=/dev/loop$d
b7f731
+			eval file$d=$targetdir/mdtest$d
b7f731
+			;;
b7f731
+		lvm)
b7f731
+			unset MULTIPATH
b7f731
+			eval dev$d=/dev/mapper/${LVM_VOLGROUP}-mdtest$d
b7f731
+			if ! lvcreate --quiet -L ${sz}K -n mdtest$d $LVM_VOLGROUP
b7f731
+			then
b7f731
+				trap '' 0 # make sure lvremove is not called
b7f731
+				eval echo error creating \$dev$d
b7f731
+				exit 129
b7f731
+			fi
b7f731
+			;;
b7f731
+		ram)
b7f731
+			unset MULTIPATH
b7f731
+			eval dev$d=/dev/ram$d
b7f731
+			;;
b7f731
+		esac
b7f731
+		eval devlist=\"\$devlist \$dev$d\"
b7f731
+		eval devlist$d=\"\$devlist\"
b7f731
+		#" <-- add this quote to un-confuse vim syntax highlighting
b7f731
+	done
b7f731
+	path0=$dev6
b7f731
+	path1=$dev7
b7f731
+	ulimit -c unlimited
b7f731
+	[ -f /proc/mdstat ] || modprobe md_mod
b7f731
+	echo 2000 > /proc/sys/dev/raid/speed_limit_max
b7f731
+	echo 0 > /sys/module/md_mod/parameters/start_ro
b7f731
 }
b7f731
 
b7f731
 # mdadm always adds --quiet, and we want to see any unexpected messages
b7f731
 mdadm() {
b7f731
-    rm -f $targetdir/stderr
b7f731
-    case $* in
b7f731
-	*-S* ) udevadm settle
b7f731
-	       p=`cat /proc/sys/dev/raid/speed_limit_max`
b7f731
-	       echo 20000 > /proc/sys/dev/raid/speed_limit_max
b7f731
-    esac
b7f731
-    case $* in
b7f731
-	*-C* ) $mdadm 2> $targetdir/stderr --quiet "$@" --auto=yes;;
b7f731
-	* )    $mdadm 2> $targetdir/stderr --quiet "$@"
b7f731
-    esac
b7f731
-    rv=$?
b7f731
-    case $* in
b7f731
-	*-S* ) udevadm settle
b7f731
-	       echo $p > /proc/sys/dev/raid/speed_limit_max
b7f731
-    esac
b7f731
-    cat >&2 $targetdir/stderr
b7f731
-    return $rv
b7f731
+	rm -f $targetdir/stderr
b7f731
+	case $* in
b7f731
+	*-S* )
b7f731
+		udevadm settle
b7f731
+		p=`cat /proc/sys/dev/raid/speed_limit_max`
b7f731
+		echo 20000 > /proc/sys/dev/raid/speed_limit_max
b7f731
+		;;
b7f731
+	esac
b7f731
+	case $* in
b7f731
+	*-C* )
b7f731
+		$mdadm 2> $targetdir/stderr --quiet "$@" --auto=yes
b7f731
+		;;
b7f731
+	* )
b7f731
+		$mdadm 2> $targetdir/stderr --quiet "$@"
b7f731
+		;;
b7f731
+	esac
b7f731
+	rv=$?
b7f731
+	case $* in
b7f731
+	*-S* )
b7f731
+		udevadm settle
b7f731
+		echo $p > /proc/sys/dev/raid/speed_limit_max
b7f731
+		;;
b7f731
+	esac
b7f731
+	cat >&2 $targetdir/stderr
b7f731
+	return $rv
b7f731
 }
b7f731
 
b7f731
 # check various things
b7f731
 check() {
b7f731
-   case $1 in
b7f731
-    spares )
b7f731
-       spares=`tr '] ' '\012\012' < /proc/mdstat | grep -c '(S)' || exit 0`
b7f731
-       if [ $spares -ne $2 ]
b7f731
-       then
b7f731
-          echo >&2 "ERROR expected $2 spares, found $spares"; exit 1;
b7f731
-       fi
b7f731
-      ;;
b7f731
-    raid* | linear )
b7f731
-      grep -s "active $1 " /proc/mdstat > /dev/null || {
b7f731
-		echo >&2 "ERROR active $1 not found" ; cat /proc/mdstat ; exit 1;}
b7f731
-     ;;
b7f731
-    algorithm )
b7f731
-      grep -s " algorithm $2 " /proc/mdstat > /dev/null || {
b7f731
-	  echo >&2 "ERROR algorithm $2 not found"; cat /proc/mdstat; exit 1;}
b7f731
-     ;;
b7f731
-    resync | recovery | reshape)
b7f731
-	cnt=5
b7f731
-	while ! grep -s $1 /proc/mdstat > /dev/null
b7f731
-	do
b7f731
-	    if [ $cnt -gt 0 ] && grep -v idle /sys/block/md*/md/sync_action > /dev/null
b7f731
-	    then # Something isn't idle - wait a bit
b7f731
+	case $1 in
b7f731
+	spares )
b7f731
+		spares=`tr '] ' '\012\012' < /proc/mdstat | grep -c '(S)' || exit 0`
b7f731
+		if [ $spares -ne $2 ]
b7f731
+		then
b7f731
+			echo >&2 "ERROR expected $2 spares, found $spares"
b7f731
+			exit 1
b7f731
+		fi
b7f731
+		;;
b7f731
+	raid* | linear )
b7f731
+		grep -s "active $1 " /proc/mdstat > /dev/null || {
b7f731
+			echo >&2 "ERROR active $1 not found"
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		;;
b7f731
+	algorithm )
b7f731
+		grep -s " algorithm $2 " /proc/mdstat > /dev/null || {
b7f731
+			echo >&2 "ERROR algorithm $2 not found"
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		;;
b7f731
+	resync | recovery | reshape )
b7f731
+		cnt=5
b7f731
+		while ! grep -s $1 /proc/mdstat > /dev/null
b7f731
+		do
b7f731
+			if [ $cnt -gt 0 ] && grep -v idle /sys/block/md*/md/sync_action > /dev/null
b7f731
+			then # Something isn't idle - wait a bit
b7f731
+				sleep 0.5
b7f731
+				cnt=$[cnt-1]
b7f731
+			else
b7f731
+				echo >&2 ERROR no $1 happening
b7f731
+				cat /proc/mdstat
b7f731
+				exit 1
b7f731
+			fi
b7f731
+		done
b7f731
+		;;
b7f731
+	nosync )
b7f731
 		sleep 0.5
b7f731
-		cnt=$[cnt-1]
b7f731
-	    else
b7f731
-		echo >&2 ERROR no $1 happening; cat /proc/mdstat; exit 1
b7f731
-	    fi
b7f731
-	done
b7f731
-	;;
b7f731
-
b7f731
-     nosync )
b7f731
-       sleep 0.5
b7f731
-       # Since 4.2 we delay the close of recovery until there has been a chance for
b7f731
-       # spares to be activated.  That means that a recovery that finds nothing
b7f731
-       # to do can still take a little longer than expected.
b7f731
-       # add an extra check: is sync_completed shows the end is reached, assume
b7f731
-       # there is no recovery.
b7f731
-       if grep -s -E '(resync|recovery|reshape) *=' > /dev/null /proc/mdstat ; then
b7f731
-	   incomplete=`grep / /sys/block/md*/md/sync_completed 2> /dev/null | sed '/^ *\([0-9]*\) \/ \1/d'`
b7f731
-	   if [ -n "$incomplete" ]; then
b7f731
-		echo >&2 "ERROR resync or recovery is happening!"; cat /proc/mdstat ; exit 1;
b7f731
-	   fi
b7f731
-       fi
b7f731
-     ;;
b7f731
-
b7f731
-    wait )
b7f731
-      p=`cat /proc/sys/dev/raid/speed_limit_max`
b7f731
-      echo 2000000 > /proc/sys/dev/raid/speed_limit_max
b7f731
-      sleep 0.1
b7f731
-      while grep -E '(resync|recovery|reshape|check|repair) *=' > /dev/null /proc/mdstat ||
b7f731
-	      grep -v idle > /dev/null /sys/block/md*/md/sync_action
b7f731
-      do sleep 0.5;
b7f731
-      done
b7f731
-      echo $p > /proc/sys/dev/raid/speed_limit_max
b7f731
-      ;;
b7f731
-
b7f731
-    state )
b7f731
-       grep -s "blocks.*\[$2\]\$" /proc/mdstat > /dev/null || {
b7f731
-		echo >&2 "ERROR state $2 not found!"; cat /proc/mdstat ; exit 1; }
b7f731
-       sleep 0.5
b7f731
-      ;;
b7f731
-
b7f731
-    bitmap )
b7f731
-       grep -s bitmap > /dev/null /proc/mdstat || {
b7f731
-		echo >&2 ERROR no bitmap ; cat /proc/mdstat ; exit 1; }
b7f731
-      ;;
b7f731
-    nobitmap )
b7f731
-       if grep -s "bitmap" > /dev/null /proc/mdstat
b7f731
-       then
b7f731
-		echo >&2 ERROR bitmap present ; cat /proc/mdstat ; exit 1;
b7f731
-       fi
b7f731
-      ;;
b7f731
-
b7f731
-    readonly )
b7f731
-       grep -s "read-only" > /dev/null /proc/mdstat || {
b7f731
-                echo >&2 "ERROR array is not read-only!"; cat /proc/mdstat ; exit 1; }
b7f731
-      ;;
b7f731
-
b7f731
-    inactive )
b7f731
-       grep -s "inactive" > /dev/null /proc/mdstat || {
b7f731
-                echo >&2 "ERROR array is not inactive!"; cat /proc/mdstat ; exit 1; }
b7f731
-      ;;
b7f731
-    * ) echo >&2 ERROR unknown check $1 ; exit 1;
b7f731
-   esac
b7f731
+		# Since 4.2 we delay the close of recovery until there has been a chance for
b7f731
+		# spares to be activated.  That means that a recovery that finds nothing
b7f731
+		# to do can still take a little longer than expected.
b7f731
+		# add an extra check: is sync_completed shows the end is reached, assume
b7f731
+		# there is no recovery.
b7f731
+		if grep -s -E '(resync|recovery|reshape) *=' > /dev/null /proc/mdstat
b7f731
+		then
b7f731
+			incomplete=`grep / /sys/block/md*/md/sync_completed 2> /dev/null | sed '/^ *\([0-9]*\) \/ \1/d'`
b7f731
+			if [ -n "$incomplete" ]
b7f731
+			then
b7f731
+				echo >&2 "ERROR resync or recovery is happening!"
b7f731
+				cat /proc/mdstat
b7f731
+				exit 1
b7f731
+			fi
b7f731
+		fi
b7f731
+		;;
b7f731
+	wait )
b7f731
+		p=`cat /proc/sys/dev/raid/speed_limit_max`
b7f731
+		echo 2000000 > /proc/sys/dev/raid/speed_limit_max
b7f731
+		sleep 0.1
b7f731
+		while grep -E '(resync|recovery|reshape|check|repair) *=' > /dev/null /proc/mdstat ||
b7f731
+			grep -v idle > /dev/null /sys/block/md*/md/sync_action
b7f731
+		do
b7f731
+			sleep 0.5
b7f731
+		done
b7f731
+		echo $p > /proc/sys/dev/raid/speed_limit_max
b7f731
+		;;
b7f731
+	state )
b7f731
+		grep -s "blocks.*\[$2\]\$" /proc/mdstat > /dev/null || {
b7f731
+			echo >&2 "ERROR state $2 not found!"
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		sleep 0.5
b7f731
+		;;
b7f731
+	bitmap )
b7f731
+		grep -s bitmap > /dev/null /proc/mdstat || {
b7f731
+			echo >&2 ERROR no bitmap
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		;;
b7f731
+	nobitmap )
b7f731
+		if grep -s "bitmap" > /dev/null /proc/mdstat
b7f731
+		then
b7f731
+			echo >&2 ERROR bitmap present
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		fi
b7f731
+		;;
b7f731
+	readonly )
b7f731
+		grep -s "read-only" > /dev/null /proc/mdstat || {
b7f731
+			echo >&2 "ERROR array is not read-only!"
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		;;
b7f731
+	inactive )
b7f731
+		grep -s "inactive" > /dev/null /proc/mdstat || {
b7f731
+			echo >&2 "ERROR array is not inactive!"
b7f731
+			cat /proc/mdstat
b7f731
+			exit 1
b7f731
+		}
b7f731
+		;;
b7f731
+	* )
b7f731
+		echo >&2 ERROR unknown check $1
b7f731
+		exit 1
b7f731
+		;;
b7f731
+	esac
b7f731
 }
b7f731
 
b7f731
 no_errors() {
b7f731
-  if [ -s $targetdir/stderr ]
b7f731
-  then echo Bad errors from mdadm: ; cat $targetdir/stderr; exit 2;
b7f731
-  fi
b7f731
+	if [ -s $targetdir/stderr ]
b7f731
+	then
b7f731
+		echo Bad errors from mdadm:
b7f731
+		cat $targetdir/stderr
b7f731
+		exit 2
b7f731
+	fi
b7f731
 }
b7f731
-# basic device test
b7f731
 
b7f731
+# basic device test
b7f731
 testdev() {
b7f731
-   udevadm settle
b7f731
-   dev=$1
b7f731
-   cnt=$2
b7f731
-   dvsize=$3
b7f731
-   chunk=$4
b7f731
-   if [ -z "$5" ]; then
b7f731
-      mkfs.ext3 -F -j $dev > /dev/null 2>&1 && fsck -fn $dev >&2
b7f731
-   fi
b7f731
-   dsize=$[dvsize/chunk]
b7f731
-   dsize=$[dsize*chunk]
b7f731
-   rasize=$[dsize*2*cnt]
b7f731
-   # rasize is in sectors
b7f731
-   if [ -n "$DEV_ROUND_K" ]; then
b7f731
-      rasize=$[rasize/DEV_ROUND_K/2]
b7f731
-      rasize=$[rasize*DEV_ROUND_K*2]
b7f731
-   fi
b7f731
-   if [ `/sbin/blockdev --getsize $dev` -eq 0 ]; then sleep 2 ; fi
b7f731
-   _sz=`/sbin/blockdev --getsize $dev`
b7f731
-   if [ $rasize -lt $_sz -o $[rasize*4/5] -gt $_sz ]
b7f731
-   then
b7f731
-     echo "ERROR: size is wrong for $dev: $cnt * $dvsize (chunk=$chunk) = $rasize, not $_sz"
b7f731
-     exit 1
b7f731
-   fi
b7f731
+	udevadm settle
b7f731
+	dev=$1
b7f731
+	cnt=$2
b7f731
+	dvsize=$3
b7f731
+	chunk=$4
b7f731
+	if [ -z "$5" ]
b7f731
+	then
b7f731
+		mkfs.ext3 -F -j $dev > /dev/null 2>&1 && fsck -fn $dev >&2
b7f731
+	fi
b7f731
+	dsize=$[dvsize/chunk]
b7f731
+	dsize=$[dsize*chunk]
b7f731
+	rasize=$[dsize*2*cnt]
b7f731
+	# rasize is in sectors
b7f731
+	if [ -n "$DEV_ROUND_K" ]
b7f731
+	then
b7f731
+		rasize=$[rasize/DEV_ROUND_K/2]
b7f731
+		rasize=$[rasize*DEV_ROUND_K*2]
b7f731
+	fi
b7f731
+	if [ `/sbin/blockdev --getsize $dev` -eq 0 ]
b7f731
+	then
b7f731
+		sleep 2
b7f731
+	fi
b7f731
+	_sz=`/sbin/blockdev --getsize $dev`
b7f731
+	if [ $rasize -lt $_sz -o $[rasize*4/5] -gt $_sz ]
b7f731
+	then
b7f731
+		echo "ERROR: size is wrong for $dev: $cnt * $dvsize (chunk=$chunk) = $rasize, not $_sz"
b7f731
+		exit 1
b7f731
+	fi
b7f731
 }
b7f731
 
b7f731
 fast_sync() {
b7f731
-  echo 200000 > /proc/sys/dev/raid/speed_limit_max
b7f731
+	echo 200000 > /proc/sys/dev/raid/speed_limit_max
b7f731
 }
b7f731
 
b7f731
 rotest() {
b7f731
-  dev=$1
b7f731
-  fsck -fn $dev >&2
b7f731
+	dev=$1
b7f731
+	fsck -fn $dev >&2
b7f731
 }
b7f731
 
b7f731
 do_test() {
b7f731
-  _script=$1
b7f731
-  _basename=`basename $_script`
b7f731
-  if [ -f "$_script" ]
b7f731
-  then
b7f731
-    rm -f $targetdir/stderr
b7f731
-    # stop all arrays, just incase some script left an array active.
b7f731
-    $mdadm -Ssq 2> /dev/null
b7f731
-    mdadm --zero $devlist 2> /dev/null
b7f731
-    mdadm --zero $devlist 2> /dev/null
b7f731
-    # this might have been reset: restore the default.
b7f731
-    echo 2000 > /proc/sys/dev/raid/speed_limit_max
b7f731
-    # source script in a subshell, so it has access to our
b7f731
-    # namespace, but cannot change it.
b7f731
-    echo -ne "$_script... "
b7f731
-    if ( set -ex ; . $_script ) &> $targetdir/log
b7f731
-    then
b7f731
-      echo "succeeded"
b7f731
-      _fail=0
b7f731
-    else
b7f731
-      log=log
b7f731
-      cat $targetdir/stderr >> $targetdir/log
b7f731
-      echo "=======================dmesg=================" >> $targetdir/log
b7f731
-      dmesg | tail -n 200 >> $targetdir/log
b7f731
-      if [ $exitonerror == 0 ]; then
b7f731
-	  log=log-`basename $_script`
b7f731
-	  mv $targetdir/log $logdir/$log
b7f731
-      fi
b7f731
-      echo "FAILED - see $logdir/$log for details"
b7f731
-      _fail=1
b7f731
-    fi
b7f731
-    if [ "$savelogs" == "1" ]; then
b7f731
-      cp $targetdir/log $logdir/$_basename.log
b7f731
-    fi
b7f731
-    if [ "$_fail" == "1" -a "$exitonerror" == "1" ]; then
b7f731
-      exit 1
b7f731
-    fi
b7f731
-  fi
b7f731
+	_script=$1
b7f731
+	_basename=`basename $_script`
b7f731
+	if [ -f "$_script" ]
b7f731
+	then
b7f731
+		rm -f $targetdir/stderr
b7f731
+		# stop all arrays, just incase some script left an array active.
b7f731
+		$mdadm -Ssq 2> /dev/null
b7f731
+		mdadm --zero $devlist 2> /dev/null
b7f731
+		mdadm --zero $devlist 2> /dev/null
b7f731
+		# this might have been reset: restore the default.
b7f731
+		echo 2000 > /proc/sys/dev/raid/speed_limit_max
b7f731
+		# source script in a subshell, so it has access to our
b7f731
+		# namespace, but cannot change it.
b7f731
+		echo -ne "$_script... "
b7f731
+		if ( set -ex ; . $_script ) &> $targetdir/log
b7f731
+		then
b7f731
+			echo "succeeded"
b7f731
+			_fail=0
b7f731
+		else
b7f731
+			log=log
b7f731
+			cat $targetdir/stderr >> $targetdir/log
b7f731
+			echo "=======================dmesg=================" >> $targetdir/log
b7f731
+			dmesg | tail -n 200 >> $targetdir/log
b7f731
+			if [ $exitonerror == 0 ]; then
b7f731
+				log=log-`basename $_script`
b7f731
+				mv $targetdir/log $logdir/$log
b7f731
+			fi
b7f731
+			echo "FAILED - see $logdir/$log for details"
b7f731
+			_fail=1
b7f731
+		fi
b7f731
+		if [ "$savelogs" == "1" ]
b7f731
+		then
b7f731
+			cp $targetdir/log $logdir/$_basename.log
b7f731
+		fi
b7f731
+		if [ "$_fail" == "1" -a "$exitonerror" == "1" ]
b7f731
+		then
b7f731
+			exit 1
b7f731
+		fi
b7f731
+	fi
b7f731
 }
b7f731
 
b7f731
 do_help() {
b7f731
-  echo "Usage: $0 [options]"
b7f731
-  echo " Options:"
b7f731
-  echo "    --tests=<test1,test2,..>    Comma separated list of tests to run"
b7f731
-  echo "    --disable-multipath         Disable any tests involving multipath"
b7f731
-  echo "    --disable-integrity         Disable slow tests of RAID[56] consistency"
b7f731
-  echo "    --logdir=<directory>        Directory to save logfiles in"
b7f731
-  echo "    --save-logs                 Save all logs in <logdir>"
b7f731
-  echo "    --keep-going                Don't stop on error, ie. run all tests"
b7f731
-  echo "    --dev=[loop|lvm|ram]        Use loop devices (default), LVM, or RAM disk"
b7f731
-  echo "    --volgroup=<name>           LVM volume group for LVM test"
b7f731
-  echo "    setup                       Setup test environment and exit"
b7f731
-  echo "    cleanup                     Cleanup test environment"
b7f731
-  echo "    <prefix>                    Run tests with <prefix>"
b7f731
+	echo "Usage: $0 [options]"
b7f731
+	echo " Options:"
b7f731
+	echo "    --tests=<test1,test2,..>    Comma separated list of tests to run"
b7f731
+	echo "    --disable-multipath         Disable any tests involving multipath"
b7f731
+	echo "    --disable-integrity         Disable slow tests of RAID[56] consistency"
b7f731
+	echo "    --logdir=<directory>        Directory to save logfiles in"
b7f731
+	echo "    --save-logs                 Save all logs in <logdir>"
b7f731
+	echo "    --keep-going                Don't stop on error, ie. run all tests"
b7f731
+	echo "    --dev=[loop|lvm|ram]        Use loop devices (default), LVM, or RAM disk"
b7f731
+	echo "    --volgroup=<name>           LVM volume group for LVM test"
b7f731
+	echo "    setup                       Setup test environment and exit"
b7f731
+	echo "    cleanup                     Cleanup test environment"
b7f731
+	echo "    <prefix>                    Run tests with <prefix>"
b7f731
 }
b7f731
 
b7f731
 parse_args() {
b7f731
-  for i in $*
b7f731
-  do
b7f731
-    case $i in
b7f731
-    [0-9]*)
b7f731
-      prefix=$i
b7f731
-      ;;
b7f731
-    setup)
b7f731
-      echo "mdadm test environment setup"
b7f731
-      do_setup
b7f731
-      trap 0; exit 0
b7f731
-      ;;
b7f731
-    cleanup)
b7f731
-      cleanup
b7f731
-      exit 0
b7f731
-      ;;
b7f731
-    --tests=*)
b7f731
-      TESTLIST=`expr "x$i" : 'x[^=]*=\(.*\)' | sed -e 's/,/ /g'`
b7f731
-      ;;
b7f731
-    --logdir=*)
b7f731
-      logdir=`expr "x$i" : 'x[^=]*=\(.*\)'`
b7f731
-      ;;
b7f731
-    --save-logs)
b7f731
-      savelogs=1
b7f731
-      ;;
b7f731
-    --keep-going | --no-error)
b7f731
-      exitonerror=0
b7f731
-      ;;
b7f731
-    --disable-multipath)
b7f731
-      unset MULTIPATH
b7f731
-      ;;
b7f731
-    --disable-integrity)
b7f731
-      unset INTEGRITY
b7f731
-      ;;
b7f731
-    --dev=loop)
b7f731
-      DEVTYPE=loop
b7f731
-      ;;
b7f731
-    --dev=lvm)
b7f731
-      DEVTYPE=lvm
b7f731
-      ;;
b7f731
-    --dev=ram)
b7f731
-      DEVTYPE=ram
b7f731
-      ;;
b7f731
-    --volgroup=*)
b7f731
-      LVM_VOLGROUP=`expr "x$i" : 'x[^=]*=\(.*\)'`
b7f731
-      ;;
b7f731
-    --help)
b7f731
-      do_help
b7f731
-      exit 0;
b7f731
-      ;;
b7f731
-    -*)
b7f731
-      echo " $0: Unknown argument: $i"
b7f731
-      do_help
b7f731
-      exit 0;
b7f731
-      ;;
b7f731
-    esac
b7f731
-done
b7f731
+	for i in $*
b7f731
+	do
b7f731
+		case $i in
b7f731
+		[0-9]* )
b7f731
+			prefix=$i
b7f731
+			;;
b7f731
+		setup )
b7f731
+			echo "mdadm test environment setup"
b7f731
+			do_setup
b7f731
+			trap 0
b7f731
+			exit 0
b7f731
+			;;
b7f731
+		cleanup )
b7f731
+			cleanup
b7f731
+			exit 0
b7f731
+			;;
b7f731
+		--tests=* )
b7f731
+			TESTLIST=`expr "x$i" : 'x[^=]*=\(.*\)' | sed -e 's/,/ /g'`
b7f731
+			;;
b7f731
+		--logdir=* )
b7f731
+			logdir=`expr "x$i" : 'x[^=]*=\(.*\)'`
b7f731
+			;;
b7f731
+		--save-logs )
b7f731
+			savelogs=1
b7f731
+			;;
b7f731
+		--keep-going | --no-error )
b7f731
+			exitonerror=0
b7f731
+			;;
b7f731
+		--disable-multipath )
b7f731
+			unset MULTIPATH
b7f731
+			;;
b7f731
+		--disable-integrity )
b7f731
+			unset INTEGRITY
b7f731
+			;;
b7f731
+		--dev=loop )
b7f731
+			DEVTYPE=loop
b7f731
+			;;
b7f731
+		--dev=lvm )
b7f731
+			DEVTYPE=lvm
b7f731
+			;;
b7f731
+		--dev=ram )
b7f731
+			DEVTYPE=ram
b7f731
+			;;
b7f731
+		--volgroup=* )
b7f731
+			LVM_VOLGROUP=`expr "x$i" : 'x[^=]*=\(.*\)'`
b7f731
+			;;
b7f731
+		--help )
b7f731
+			do_help
b7f731
+			exit 0
b7f731
+			;;
b7f731
+		-* )
b7f731
+			echo " $0: Unknown argument: $i"
b7f731
+			do_help
b7f731
+			exit 0
b7f731
+			;;
b7f731
+		esac
b7f731
+	done
b7f731
 }
b7f731
 
b7f731
 logdir=$targetdir
b7f731
@@ -422,19 +474,21 @@ parse_args $@
b7f731
 do_setup
b7f731
 mkdir -p $logdir
b7f731
 
b7f731
-if [ "$savelogs" == "1" ]; then
b7f731
-  echo "Saving logs to $logdir"
b7f731
+if [ "$savelogs" == "1" ]
b7f731
+then
b7f731
+	echo "Saving logs to $logdir"
b7f731
 fi
b7f731
 
b7f731
-if [ "x$TESTLIST" != "x" ]; then
b7f731
-  for script in $TESTLIST
b7f731
-  do
b7f731
-    do_test $testdir/$script
b7f731
-  done
b7f731
+if [ "x$TESTLIST" != "x" ]
b7f731
+then
b7f731
+	for script in $TESTLIST
b7f731
+	do
b7f731
+		do_test $testdir/$script
b7f731
+	done
b7f731
 else
b7f731
-  for script in $testdir/$prefix $testdir/$prefix*[^~]
b7f731
-  do
b7f731
-    do_test $script
b7f731
-  done
b7f731
+	for script in $testdir/$prefix $testdir/$prefix*[^~]
b7f731
+	do
b7f731
+		do_test $script
b7f731
+	done
b7f731
 fi
b7f731
 exit 0
b7f731
-- 
b7f731
2.7.4
b7f731