diff --git a/lustre/tests/conf-sanity.sh b/lustre/tests/conf-sanity.sh
index fd80cc94f6e32dc6b8ea98c0a17e475a8e359da1..28e18c570065453d7acdbec4892b3abdffe37787 100644
--- a/lustre/tests/conf-sanity.sh
+++ b/lustre/tests/conf-sanity.sh
@@ -1064,11 +1064,12 @@ run_test 27b "Reacquire MGS lock after failover"
 test_28() {
         setup
 	TEST="lctl get_param -n llite.$FSNAME-*.max_read_ahead_whole_mb"
-	ORIG=$($TEST) 
-	declare -i FINAL
-	FINAL=$(($ORIG + 10))
-	set_and_check client "$TEST" "$FSNAME.llite.max_read_ahead_whole_mb" || return 3
-	set_and_check client "$TEST" "$FSNAME.llite.max_read_ahead_whole_mb" || return 3
+	PARAM="$FSNAME.llite.max_read_ahead_whole_mb"
+	ORIG=$($TEST)
+	FINAL=$(($ORIG + 1))
+	set_and_check client "$TEST" "$PARAM" $FINAL || return 3
+	FINAL=$(($FINAL + 1))
+	set_and_check client "$TEST" "$PARAM" $FINAL || return 4
  	umount_client $MOUNT || return 200
 	mount_client $MOUNT
 	RESULT=$($TEST)
@@ -1078,6 +1079,7 @@ test_28() {
 	else
 	    echo "New config success: got $RESULT"
 	fi
+	set_and_check client "$TEST" "$PARAM" $ORIG || return 5
 	cleanup
 }
 run_test 28 "permanent parameter setting"
@@ -1153,8 +1155,9 @@ test_30() {
 	setup
 
 	TEST="lctl get_param -n llite.$FSNAME-*.max_read_ahead_whole_mb"
-	ORIG=$($TEST) 
-	for i in $(seq 1 20); do 
+	ORIG=$($TEST)
+	LIST=(1 2 3 4 5 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5)
+	for i in ${LIST[@]}; do
 	    set_and_check client "$TEST" "$FSNAME.llite.max_read_ahead_whole_mb" $i || return 3
 	done
 	# make sure client restart still works