This patch corrected these bugs.
b=12190
SRCDIR=`dirname $0`
export PATH=$PWD/$SRCDIR:$SRCDIR:$PWD/$SRCDIR/../utils:$PATH:/sbin
SRCDIR=`dirname $0`
export PATH=$PWD/$SRCDIR:$SRCDIR:$PWD/$SRCDIR/../utils:$PATH:/sbin
+if [ "$1" == "9_10" ]; then
+ echo "only run for test9 and test10"
+ shift
+ TEST_9_10=1
+ ONLY="9 10"
+else
+ TEST_9_10=0
+fi
ONLY=${ONLY:-"$*"}
ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-""}
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
ONLY=${ONLY:-"$*"}
ALWAYS_EXCEPT=${ALWAYS_EXCEPT:-""}
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
+ [ "$ALWAYS_EXCEPT$EXCEPT$SANITY_EXCEPT" ] && \
+ echo "Skipping tests: `echo $ALWAYS_EXCEPT $EXCEPT $SANITY_QUOTA_EXCEPT`"
+
for O in $ONLY; do
eval ONLY_${O}=true
done
for O in $ONLY; do
eval ONLY_${O}=true
done
- for E in $EXCEPT $ALWAYS_EXCEPT; do
+ for E in $EXCEPT $ALWAYS_EXCEPT $SANITY_QUOTA_EXCEPT; do
eval EXCEPT_${E}=true
done
# turn on/off quota tests must be included
eval EXCEPT_${E}=true
done
# turn on/off quota tests must be included
}
mounted_lustre_filesystems() {
}
mounted_lustre_filesystems() {
- awk '($3 ~ "lustre" && $1 ~ ":") { print $2 }' /proc/mounts | sed -n $1p
+ awk '($3 ~ "lustre" && $1 ~ ":") { print $2 }' /proc/mounts | sed -n ${1}p
}
# Remember where our caller has hinted that we should mount lustre
}
# Remember where our caller has hinted that we should mount lustre
MOUNT_HINT2=$MOUNT2
MOUNT="`mounted_lustre_filesystems 1`"
MOUNT2="`mounted_lustre_filesystems 2`"
MOUNT_HINT2=$MOUNT2
MOUNT="`mounted_lustre_filesystems 1`"
MOUNT2="`mounted_lustre_filesystems 2`"
-if [ -n "$MOUNT" -a -z "$MOUNT2" ]; then
- error "this test needs two mount point!"
-fi
-if [ -z "$MOUNT" -a -n "$MOUNT2" ]; then
- error "this test needs two mount point!"
-fi
-if [ -z "$MOUNT" -a -z "$MOUNT2" ]; then
+if [ $TEST_9_10 -eq 1 -a "$MOUNT" ]; then
+ echo "test9 and test10 will run on $MOUNT"
+elif [ "$MOUNT" -a "$MOUNT2" ]; then
+ echo "testing on $MOUNT and $MOUNT2"
+elif [ "$MOUNT" -o "$MOUNT2" ]; then
+ error "test needs two mounts, only found $MOUNT $MOUNT2!"
+else
export QUOTA_OPTS="quotaon=ug"
export MOUNT=$MOUNT_HINT
export MOUNT2=$MOUNT_HINT2
export QUOTA_OPTS="quotaon=ug"
export MOUNT=$MOUNT_HINT
export MOUNT2=$MOUNT_HINT2
DIR=${DIR:-$MOUNT}
[ -z "`echo $DIR | grep $MOUNT`" ] && echo "$DIR not in $MOUNT" && exit 99
DIR=${DIR:-$MOUNT}
[ -z "`echo $DIR | grep $MOUNT`" ] && echo "$DIR not in $MOUNT" && exit 99
LPROC=/proc/fs/lustre
LOVNAME=`cat $LPROC/llite/*/lov/common_name | tail -n 1`
LPROC=/proc/fs/lustre
LOVNAME=`cat $LPROC/llite/*/lov/common_name | tail -n 1`
-OSTCOUNT=`cat $LPROC/lov/$LOVNAME/numobd`
+if [ $TEST_9_10 -eq 1 ]; then
+ OSTCOUNT=2
+else
+ OSTCOUNT=`cat $LPROC/lov/$LOVNAME/numobd`
+fi
STRIPECOUNT=`cat $LPROC/lov/$LOVNAME/stripecount`
STRIPESIZE=`cat $LPROC/lov/$LOVNAME/stripesize`
ORIGFREE=`cat $LPROC/lov/$LOVNAME/kbytesavail`
MAXFREE=${MAXFREE:-$((200000 * $OSTCOUNT))}
MDS=$(\ls $LPROC/mds 2> /dev/null | grep -v num_refs | tail -n 1)
STRIPECOUNT=`cat $LPROC/lov/$LOVNAME/stripecount`
STRIPESIZE=`cat $LPROC/lov/$LOVNAME/stripesize`
ORIGFREE=`cat $LPROC/lov/$LOVNAME/kbytesavail`
MAXFREE=${MAXFREE:-$((200000 * $OSTCOUNT))}
MDS=$(\ls $LPROC/mds 2> /dev/null | grep -v num_refs | tail -n 1)
-TSTDIR="$MOUNT/quota_dir"
-TSTDIR2="$MOUNT2/quota_dir"
+TSTDIR=$DIR/quota_test_dir
+TSTDIR2=$DIR2/quota_test_dir
+SHOW_QUOTA_USER="$LFS quota -u $TSTUSR $MOUNT"
+SHOW_QUOTA_GROUP="$LFS quota -g $TSTUSR $MOUNT"
+SHOW_QUOTA_INFO="$LFS quota -t $MOUNT"
# set_blk_tunables(btune_sz)
set_blk_tunesz() {
# set btune size on all obdfilters
# set_blk_tunables(btune_sz)
set_blk_tunesz() {
# set btune size on all obdfilters
- for i in `ls /proc/fs/lustre/obdfilter/*/quota_btune_sz`; do
+ for i in /proc/fs/lustre/obdfilter/*/quota_btune_sz; do
echo $(($1 * $BLK_SZ)) > $i
done
# set btune size on mds
echo $(($1 * $BLK_SZ)) > $i
done
# set btune size on mds
- for i in `ls /proc/fs/lustre/mds/lustre-MDT*/quota_btune_sz`; do
+ for i in /proc/fs/lustre/mds/lustre-MDT*/quota_btune_sz; do
echo $(($1 * $BLK_SZ)) > $i
done
}
echo $(($1 * $BLK_SZ)) > $i
done
}
-# se_blk_unitsz(bunit_sz)
+
+# set_blk_unitsz(bunit_sz)
- for i in `ls /proc/fs/lustre/obdfilter/*/quota_bunit_sz`; do
+ for i in /proc/fs/lustre/obdfilter/*/quota_bunit_sz; do
echo $(($1 * $BLK_SZ)) > $i
done
echo $(($1 * $BLK_SZ)) > $i
done
- for i in `ls /proc/fs/lustre/mds/lustre-MDT*/quota_bunit_sz`; do
+ for i in /proc/fs/lustre/mds/lustre-MDT*/quota_bunit_sz; do
echo $(($1 * $BLK_SZ)) > $i
done
}
echo $(($1 * $BLK_SZ)) > $i
done
}
# set_file_tunesz(itune_sz)
set_file_tunesz() {
# set iunit and itune size on all obdfilters
# set_file_tunesz(itune_sz)
set_file_tunesz() {
# set iunit and itune size on all obdfilters
- for i in `ls /proc/fs/lustre/obdfilter/*/quota_itune_sz`; do
+ for i in /proc/fs/lustre/obdfilter/*/quota_itune_sz; do
echo $1 > $i
done
# set iunit and itune size on mds
echo $1 > $i
done
# set iunit and itune size on mds
- for i in `ls /proc/fs/lustre/mds/lustre-MDT*/quota_itune_sz`; do
+ for i in /proc/fs/lustre/mds/lustre-MDT*/quota_itune_sz; do
# set_file_unitsz(iunit_sz)
set_file_unitsz() {
for i in `ls /proc/fs/lustre/obdfilter/*/quota_iunit_sz`; do
# set_file_unitsz(iunit_sz)
set_file_unitsz() {
for i in `ls /proc/fs/lustre/obdfilter/*/quota_iunit_sz`; do
set_file_unitsz $IUNIT_SZ
fi
}
set_file_unitsz $IUNIT_SZ
fi
}
+if [ $TEST_9_10 -eq 0 ]; then
+ pre_test
+fi
post_test() {
if [ -z "$NOSETUP" ]; then
post_test() {
if [ -z "$NOSETUP" ]; then
RUNAS2="runas -u $TSTID2"
# create test directory
RUNAS2="runas -u $TSTID2"
# create test directory
- [ -d $TSTDIR ] || mkdir $TSTDIR
- chmod 777 $TSTDIR
- [ -d $TSTDIR2 ] || mkdir $TSTDIR2
- chmod 777 $TSTDIR2
+ mkdir -p $TSTDIR
+ chmod 777 $TSTDIR
# block hard limit (normal use and out of quota)
test_1() {
# block hard limit (normal use and out of quota)
test_1() {
- LIMIT=$(( $BUNIT_SZ * $(($OSTCOUNT + 1)) * 10)) # 10 bunits each sever
+ LIMIT=$(( $BUNIT_SZ * $(($OSTCOUNT + 1)) * 5)) # 5 bunits each sever
TESTFILE="$TSTDIR/quota_tst10"
TESTFILE="$TSTDIR/quota_tst10"
- echo " User quota (limit: $LIMIT bytes)"
+ echo " User quota (limit: $LIMIT kbytes)"
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write ..."
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write ..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) > /dev/null 2>&1 || error "(usr) write failure, but expect success"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) || error "(usr) write failure, but expect success"
echo " Done"
echo " Write out of block quota ..."
# this time maybe cache write, ignore it's failure
echo " Done"
echo " Write out of block quota ..."
# this time maybe cache write, ignore it's failure
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) seek=$(($LIMIT/2)) > /dev/null 2>&1 || echo " " > /dev/null
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) seek=$(($LIMIT/2)) || true
# flush cache, ensure noquota flag is setted on client
sync; sleep 1; sync;
# flush cache, ensure noquota flag is setted on client
sync; sleep 1; sync;
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$LIMIT > /dev/null 2>&1 && error "(usr) write success, but expect EDQUOT"
- echo " EDQUOT"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$LIMIT && error "(usr) write success, but expect EDQUOT"
- echo " Group quota (limit: $LIMIT bytes)"
+ echo " Group quota (limit: $LIMIT kbytes)"
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
$LFS setquota -g $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
$LFS setquota -g $TSTUSR 0 $LIMIT 0 0 $MOUNT
TESTFILE="$TSTDIR/quota_tst11"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write ..."
TESTFILE="$TSTDIR/quota_tst11"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write ..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) > /dev/null 2>&1 || error "(grp) write failure, but expect success"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) || error "(grp) write failure, but expect success"
echo " Done"
echo " Write out of block quota ..."
# this time maybe cache write, ignore it's failure
echo " Done"
echo " Write out of block quota ..."
# this time maybe cache write, ignore it's failure
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) seek=$(($LIMIT/2)) > /dev/null 2>&1 || echo " " > /dev/null
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT/2)) seek=$(($LIMIT/2)) || true
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$LIMIT > /dev/null 2>&1 && error "(grp) write success, but expect EDQUOT"
- echo " EDQUOT"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$LIMIT && error "(grp) write success, but expect EDQUOT"
# cleanup
rm -f $TESTFILE
# cleanup
rm -f $TESTFILE
echo " User quota (limit: $LIMIT files)"
$LFS setquota -u $TSTUSR 0 0 0 $LIMIT $MOUNT
echo " User quota (limit: $LIMIT files)"
$LFS setquota -u $TSTUSR 0 0 0 $LIMIT $MOUNT
echo " Create $LIMIT files ..."
echo " Create $LIMIT files ..."
- for i in `seq ${LIMIT}`; do
- $RUNAS touch ${TESTFILE}_$i > /dev/null 2>&1 || error "(usr) touch failure, but except success"
- done
+ $RUNAS createmany -m ${TESTFILE} $LIMIT || \
+ error "(usr) create failure, but except success"
echo " Done"
echo " Create out of file quota ..."
echo " Done"
echo " Create out of file quota ..."
- $RUNAS touch ${TESTFILE}_xxx > /dev/null 2>&1 && error "(usr) touch success, but expect EDQUOT"
- echo " EDQUOT"
+ $RUNAS touch ${TESTFILE}_xxx && \
+ error "(usr) touch success, but expect EDQUOT"
- for i in `seq ${LIMIT}`; do
- rm -f ${TESTFILE}_$i
- done
+ unlinkmany ${TESTFILE} $LIMIT
+ rm ${TESTFILE}_xxx
echo " Group quota (limit: $LIMIT files)"
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
$LFS setquota -g $TSTUSR 0 0 0 $LIMIT $MOUNT
echo " Group quota (limit: $LIMIT files)"
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
$LFS setquota -g $TSTUSR 0 0 0 $LIMIT $MOUNT
TESTFILE="$TSTDIR/quota_tst21"
echo " Create $LIMIT files ..."
TESTFILE="$TSTDIR/quota_tst21"
echo " Create $LIMIT files ..."
- for i in `seq ${LIMIT}`; do
- $RUNAS touch ${TESTFILE}_$i > /dev/null 2>&1 || error "(grp) touch failure, but expect success"
- done
+ $RUNAS createmany -m ${TESTFILE} $LIMIT || \
+ error "(grp) create failure, but expect success"
+
echo " Done"
echo " Create out of file quota ..."
echo " Done"
echo " Create out of file quota ..."
+ $RUNAS touch ${TESTFILE}_xxx && \
+ error "(grp) touch success, but expect EDQUOT"
+
$RUNAS touch ${TESTFILE}_xxx > /dev/null 2>&1 && error "(grp) touch success, but expect EDQUOT"
$RUNAS touch ${TESTFILE}_xxx > /dev/null 2>&1 && error "(grp) touch success, but expect EDQUOT"
- for i in `seq ${LIMIT}`; do
- rm -f ${TESTFILE}_$i
- done
+ unlinkmany ${TESTFILE} $LIMIT
+ rm ${TESTFILE}_xxx
+
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
}
run_test 2 "File hard limit (normal use and out of quota) ==="
test_block_soft() {
TESTFILE=$1
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
}
run_test 2 "File hard limit (normal use and out of quota) ==="
test_block_soft() {
TESTFILE=$1
+ TIMER=$(($2 * 3 / 2))
+ OFFSET=0
echo " Write to exceed soft limit"
echo " Write to exceed soft limit"
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ >/dev/null 2>&1 || error "write failure, but expect success"
+ RUNDD="$RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ"
+ $RUNDD count=$((BUNIT_SZ+1)) || \
+ error "write failure, but expect success"
+ OFFSET=$((OFFSET + BUNIT_SZ + 1))
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
+
echo " Write before timer goes off"
echo " Write before timer goes off"
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$BUNIT_SZ >/dev/null 2>&1 || error "write failure, but expect success"
+ $RUNDD count=$BUNIT_SZ seek=$OFFSET || \
+ error "write failure, but expect success"
+ OFFSET=$((OFFSET + BUNIT_SZ))
+ sync; sleep 1; sync;
- echo " Sleep $GRACE seconds ..."
- sleep $GRACE
+ echo " Sleep $TIMER seconds ..."
+ sleep $TIMER
+
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
echo " Write after timer goes off"
# maybe cache write, ignore.
sync; sleep 1; sync;
echo " Write after timer goes off"
# maybe cache write, ignore.
sync; sleep 1; sync;
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ seek=$(($BUNIT_SZ * 2)) >/dev/null 2>&1 || echo " " > /dev/null
+ $RUNDD count=$BUNIT_SZ seek=$OFFSET || true
+ OFFSET=$((OFFSET + BUNIT_SZ))
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=1 seek=$(($BUNIT_SZ * 3)) >/dev/null 2>&1 && error "write success, but expect EDQUOT"
- echo " EDQUOT"
+ $RUNDD count=$BUNIT_SZ seek=$OFFSET && \
+ error "write success, but expect EDQUOT"
+
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
echo " Unlink file to stop timer"
rm -f $TESTFILE
echo " Done"
echo " Unlink file to stop timer"
rm -f $TESTFILE
echo " Done"
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
+
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ >/dev/null 2>&1 || error "write failure, but expect success"
+ $RUNDD count=$BUNIT_SZ || error "write failure, but expect success"
LIMIT=$(( $BUNIT_SZ * 2 )) # 1 bunit on mds and 1 bunit on the ost
GRACE=10
LIMIT=$(( $BUNIT_SZ * 2 )) # 1 bunit on mds and 1 bunit on the ost
GRACE=10
- echo " User quota (soft limit: $LIMIT bytes grace: $GRACE seconds)"
+ echo " User quota (soft limit: $LIMIT kbytes grace: $GRACE seconds)"
TESTFILE="$TSTDIR/quota_tst30"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
TESTFILE="$TSTDIR/quota_tst30"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
test_block_soft $TESTFILE $GRACE
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
test_block_soft $TESTFILE $GRACE
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
- echo " Group quota (soft limit: $LIMIT bytes grace: $GRACE seconds)"
+ echo " Group quota (soft limit: $LIMIT kbytes grace: $GRACE seconds)"
TESTFILE="$TSTDIR/quota_tst31"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
$LFS setquota -t -g $GRACE $MAX_IQ_TIME $MOUNT
$LFS setquota -g $TSTUSR $LIMIT 0 0 0 $MOUNT
TESTFILE="$TSTDIR/quota_tst31"
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
$LFS setquota -t -g $GRACE $MAX_IQ_TIME $MOUNT
$LFS setquota -g $TSTUSR $LIMIT 0 0 0 $MOUNT
- TESTFILE="$TSTDIR/quota_tst31"
test_block_soft $TESTFILE $GRACE
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
test_block_soft $TESTFILE $GRACE
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
test_file_soft() {
TESTFILE=$1
LIMIT=$2
test_file_soft() {
TESTFILE=$1
LIMIT=$2
echo " Create files to exceed soft limit"
echo " Create files to exceed soft limit"
- for i in `seq $LIMIT`; do
- $RUNAS touch ${TESTFILE}_$i >/dev/null 2>&1 || error "touch failure, but expect success"
- done
+ $RUNAS createmany -m ${TESTFILE}_ $((LIMIT + 1)) || \
+ error "create failure, but expect success"
echo " Done"
echo " Create file before timer goes off"
echo " Done"
echo " Create file before timer goes off"
- $RUNAS touch ${TESTFILE}_before >/dev/null 2>&1 || error "touch before timer goes off failure, but expect success"
+ $RUNAS touch ${TESTFILE}_before || \
+ error "failed create before timer expired, but expect success"
- echo " Sleep $GRACE seconds ..."
- sleep $GRACE
+ echo " Sleep $TIMER seconds ..."
+ sleep $TIMER
+
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
echo " Create file after timer goes off"
echo " Create file after timer goes off"
- for i in `seq $(($IUNIT_SZ - 1))`; do
- $RUNAS touch ${TESTFILE}_after_$i >/dev/null 2>&1 || error "touch ${TESTFILE}_after_$i failure, but expect success"
- done
- $RUNAS touch ${TESTFILE}_after >/dev/null 2>&1 && error "touch after timer goes off success, but expect EDQUOT"
- echo " EDQUOT"
-
+ $RUNAS createmany -m ${TESTFILE}_after_ $((IUNIT_SZ - 2)) || \
+ error "create ${TESTFILE}_after failure, but expect success"
+ $RUNAS touch ${TESTFILE}_after && \
+ error "create after timer expired, but expect EDQUOT"
+
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $SHOW_QUOTA_INFO
+
echo " Unlink files to stop timer"
echo " Unlink files to stop timer"
- for i in `seq $LIMIT`; do
- rm -f ${TESTFILE}_$i >/dev/null 2>&1 || error "rm ${TESTFILE}_$i failure"
- done
- rm -f ${TESTFILE}_before
- for i in `seq $(($IUNIT_SZ - 1))`; do
- rm -f ${TESTFILE}_after_$i >/dev/null 2>&1 || error "rm ${TESTFILE}_after_$i failure"
- done
+ find `dirname $TESTFILE` -name "`basename ${TESTFILE}`*" | xargs rm -f
echo " Done"
echo " Create file"
echo " Done"
echo " Create file"
- $RUNAS touch ${TESTFILE}_xxx >/dev/null 2>&1 || error "touch after timer stop failure, but expect success"
+ $RUNAS touch ${TESTFILE}_xxx || \
+ error "touch after timer stop failure, but expect success"
echo " User quota (soft limit: $LIMIT files grace: $GRACE seconds)"
$LFS setquota -t -u $MAX_DQ_TIME $GRACE $MOUNT
$LFS setquota -u $TSTUSR 0 0 $LIMIT 0 $MOUNT
echo " User quota (soft limit: $LIMIT files grace: $GRACE seconds)"
$LFS setquota -t -u $MAX_DQ_TIME $GRACE $MOUNT
$LFS setquota -u $TSTUSR 0 0 $LIMIT 0 $MOUNT
test_file_soft $TESTFILE $LIMIT $GRACE
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
test_file_soft $TESTFILE $LIMIT $GRACE
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
echo " Group quota (soft limit: $LIMIT files grace: $GRACE seconds)"
$LFS setquota -t -g $MAX_DQ_TIME $GRACE $MOUNT
$LFS setquota -g $TSTUSR 0 0 $LIMIT 0 $MOUNT
echo " Group quota (soft limit: $LIMIT files grace: $GRACE seconds)"
$LFS setquota -t -g $MAX_DQ_TIME $GRACE $MOUNT
$LFS setquota -g $TSTUSR 0 0 $LIMIT 0 $MOUNT
TESTFILE="$TSTDIR/quota_tst41"
test_file_soft $TESTFILE $LIMIT $GRACE
TESTFILE="$TSTDIR/quota_tst41"
test_file_soft $TESTFILE $LIMIT $GRACE
echo " Set quota limit (0 $BLIMIT 0 $ILIMIT) for $TSTUSR.$TSTUSR"
$LFS setquota -u $TSTUSR 0 $BLIMIT 0 $ILIMIT $MOUNT
$LFS setquota -g $TSTUSR 0 $BLIMIT 0 $ILIMIT $MOUNT
echo " Set quota limit (0 $BLIMIT 0 $ILIMIT) for $TSTUSR.$TSTUSR"
$LFS setquota -u $TSTUSR 0 $BLIMIT 0 $ILIMIT $MOUNT
$LFS setquota -g $TSTUSR 0 $BLIMIT 0 $ILIMIT $MOUNT
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
- echo " Create more than $ILIMIT files and alloc more than $BLIMIT blocks ..."
- for i in `seq $(($ILIMIT + 1))`; do
- touch $TSTDIR/quota_tst50_$i > /dev/null 2>&1 || error "touch failure, expect success"
- done
- dd if=/dev/zero of=$TSTDIR/quota_tst50_1 bs=$BLK_SZ count=$(($BLIMIT+1)) > /dev/null 2>&1 || error "write failure, expect success"
+ echo " Create more than $ILIMIT files and more than $BLIMIT kbytes ..."
+ createmany -m $TSTDIR/quota_tst50_ $((ILIMIT + 1)) || \
+ error "touch failure, expect success"
+ dd if=/dev/zero of=$TSTDIR/quota_tst50_1 bs=$BLK_SZ count=$((BLIMIT+1)) || error "write failure, expect success"
echo " Chown files to $TSTUSR.$TSTUSR ..."
echo " Chown files to $TSTUSR.$TSTUSR ..."
- for i in `seq $(($ILIMIT + 1))`; do
- chown $TSTUSR.$TSTUSR $TSTDIR/quota_tst50_$i > /dev/null 2>&1 || error "chown failure, but expect success"
+ for i in `seq 0 ILIMIT`; do
+ chown $TSTUSR.$TSTUSR $TSTDIR/quota_tst50_$i || \
+ error "chown failure, but expect success"
- for i in `seq $(($ILIMIT + 1))`; do
- rm -f $TSTDIR/quota_tst50_$i
- done
+ unlinkmany $TSTDIR/quota_tst50_ $((ILIMIT + 1))
+
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
}
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT
$LFS setquota -g $TSTUSR 0 0 0 0 $MOUNT
}
-run_test 5 "Chown & chgrp (chown & chgrp successfully even out of block/file quota) ==="
+run_test 5 "Chown & chgrp successfully even out of block/file quota ==="
# block quota acquire & release
test_6() {
# block quota acquire & release
test_6() {
- LIMIT=$(($BUNIT_SZ * $(($OSTCOUNT + 1)) * 10)) # 10 bunits per server
+ LIMIT=$((BUNIT_SZ * (OSTCOUNT + 1) * 5)) # 5 bunits per server
FILEA="$TSTDIR/quota_tst60_a"
FILEB="$TSTDIR/quota_tst60_b"
FILEA="$TSTDIR/quota_tst60_a"
FILEB="$TSTDIR/quota_tst60_b"
- echo " Set block limit $LIMIT bytes to $TSTUSR.$TSTUSR"
+ echo " Set block limit $LIMIT kbytes to $TSTUSR.$TSTUSR"
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -g $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -g $TSTUSR 0 $LIMIT 0 0 $MOUNT
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
echo " Create filea on OST0 and fileb on OST1"
$LFS setstripe $FILEA 65536 0 1
echo " Create filea on OST0 and fileb on OST1"
$LFS setstripe $FILEA 65536 0 1
chown $TSTUSR.$TSTUSR $FILEB
echo " Exceed quota limit ..."
chown $TSTUSR.$TSTUSR $FILEB
echo " Exceed quota limit ..."
- $RUNAS dd if=/dev/zero of=$FILEB bs=$BLK_SZ count=$(($LIMIT - $BUNIT_SZ * $OSTCOUNT)) >/dev/null 2>&1 || error "write fileb failure, but expect success"
- #sync; sleep 1; sync;
- $RUNAS dd if=/dev/zero of=$FILEB bs=$BLK_SZ seek=$LIMIT count=$BUNIT_SZ >/dev/null 2>&1 && error "write fileb success, but expect EDQUOT"
- #sync; sleep 1; sync;
+ RUNDD="$RUNAS dd if=/dev/zero of=$FILEB bs=$BLK_SZ"
+ $RUNDD count=$((LIMIT - BUNIT_SZ * OSTCOUNT)) || \
+ error "write fileb failure, but expect success"
+
+ sync; sleep 1; sync;
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $RUNDD seek=$LIMIT count=$((BUNIT_SZ * OSTCOUNT)) && \
+ error "write fileb success, but expect EDQUOT"
+ sync; sleep 1; sync;
echo " Write to OST0 return EDQUOT"
# this write maybe cache write, ignore it's failure
echo " Write to OST0 return EDQUOT"
# this write maybe cache write, ignore it's failure
- $RUNAS dd if=/dev/zero of=$FILEA bs=$BLK_SZ count=$(($BUNIT_SZ * 2)) >/dev/null 2>&1 || echo " " > /dev/null
+ RUNDD="$RUNAS dd if=/dev/zero of=$FILEA bs=$BLK_SZ"
+ $RUNDD count=$(($BUNIT_SZ * 2)) || true
- $RUNAS dd if=/dev/zero of=$FILEA bs=$BLK_SZ count=$(($BUNIT_SZ * 2)) seek=$(($BUNIT_SZ *2)) >/dev/null 2>&1 && error "write filea success, but expect EDQUOT"
- echo " EDQUOT"
+ $SHOW_QUOTA_USER
+ $SHOW_QUOTA_GROUP
+ $RUNDD count=$((BUNIT_SZ * 2)) seek=$((BUNIT_SZ *2)) && \
+ error "write filea success, but expect EDQUOT"
echo " Remove fileb to let OST1 release quota"
rm -f $FILEB
echo " Remove fileb to let OST1 release quota"
rm -f $FILEB
+ sync; sleep 10; sync; # need to allow journal commit for small fs
- $RUNAS dd if=/dev/zero of=$FILEA bs=$BLK_SZ count=$(($LIMIT - $BUNIT_SZ * $OSTCOUNT)) >/dev/null 2>&1 || error "write filea failure, expect success"
+ $RUNDD count=$((LIMIT - BUNIT_SZ * OSTCOUNT)) || \
+ error "write filea failure, expect success"
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write to OST0..."
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write to OST0..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ >/dev/null 2>&1 || error "write failure, but expect success"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$BUNIT_SZ || \
+ error "write failure, but expect success"
#define OBD_FAIL_OBD_DQACQ 0x604
echo 0x604 > /proc/sys/lustre/fail_loc
#define OBD_FAIL_OBD_DQACQ 0x604
echo 0x604 > /proc/sys/lustre/fail_loc
echo " Trigger recovery..."
OSC0_UUID="`$LCTL dl | awk '$3 ~ /osc/ { print $1 }'`"
for i in $OSC0_UUID; do
echo " Trigger recovery..."
OSC0_UUID="`$LCTL dl | awk '$3 ~ /osc/ { print $1 }'`"
for i in $OSC0_UUID; do
- $LCTL --device $i activate > /dev/null 2>&1 || error "activate osc failed!"
+ $LCTL --device $i activate || error "activate osc failed!"
done
# sleep a while to wait for recovery done
done
# sleep a while to wait for recovery done
$RUNAS dbench -c client.txt 3
RC=$?
$RUNAS dbench -c client.txt 3
RC=$?
cd $SAVE_PWD
return $RC
}
cd $SAVE_PWD
return $RC
}
# run for fixing bug10707, it needs a big room. test for 64bit
test_9() {
# run for fixing bug10707, it needs a big room. test for 64bit
test_9() {
- lustrefs_size=`df | grep $MOUNT | awk '{print $(NF - 2)}' | sed -n 1p`
+ lustrefs_size=`(echo 0; df -t lustre -P | awk '{print $4}') | tail -n 1`
size_file=$((1024 * 1024 * 9 / 2 * $OSTCOUNT))
echo "lustrefs_size:$lustrefs_size size_file:$size_file"
if [ $lustrefs_size -lt $size_file ]; then
size_file=$((1024 * 1024 * 9 / 2 * $OSTCOUNT))
echo "lustrefs_size:$lustrefs_size size_file:$size_file"
if [ $lustrefs_size -lt $size_file ]; then
- echo "WARN: too few capacity, skip this test."
- return 0;
+ echo "WARN: less than $size_file free, skip this test."
+ return 0;
fi
# set the D_QUOTA flag
fi
# set the D_QUOTA flag
TESTFILE="$TSTDIR/quota_tst90"
TESTFILE="$TSTDIR/quota_tst90"
- echo " Set block limit $LIMIT bytes to $TSTUSR.$TSTUSR"
+ echo " Set block limit $LIMIT kbytes to $TSTUSR.$TSTUSR"
BLK_LIMIT=$((100 * 1024 * 1024)) # 100G
FILE_LIMIT=1000000
BLK_LIMIT=$((100 * 1024 * 1024)) # 100G
FILE_LIMIT=1000000
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write the big file of $(($OSTCOUNT * 9 / 2 ))G ..."
chown $TSTUSR.$TSTUSR $TESTFILE
echo " Write the big file of $(($OSTCOUNT * 9 / 2 ))G ..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$size_file >/dev/null 2>&1 || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$size_file || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
echo " delete the big file of $(($OSTCOUNT * 9 / 2))G..."
echo " delete the big file of $(($OSTCOUNT * 9 / 2))G..."
- $RUNAS rm -f $TESTFILE >/dev/null 2>&1
echo " write the big file of 2G..."
echo " write the big file of 2G..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$((1024 * 1024 * 2)) >/dev/null 2>&1 || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect seccess"
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$((1024 * 1024 * 2)) || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect seccess"
echo " delete the big file of 2G..."
echo " delete the big file of 2G..."
- $RUNAS rm -f $TESTFILE >/dev/null 2>&1
RC=$?
sysctl -w lnet.debug="$DBG_SAVE"
RC=$?
sysctl -w lnet.debug="$DBG_SAVE"
# run for fixing bug10707, it need a big room. test for 32bit
test_10() {
# run for fixing bug10707, it need a big room. test for 32bit
test_10() {
- lustrefs_size=`df | grep $MOUNT | awk '{print $(NF - 2)}' | sed -n 1p`
- size_file=$((1024 * 1024 * 9 / 2 * $OSTCOUNT))
- echo "lustrefs_size:$lustrefs_size size_file:$size_file"
- if [ $lustrefs_size -lt $size_file ]; then
- echo "WARN: too few capacity, skip this test."
- return 0;
- fi
+ lustrefs_size=`(echo 0; df -t lustre -P | awk '{print $4}') | tail -n 1`
+ size_file=$((1024 * 1024 * 9 / 2 * $OSTCOUNT))
+ echo "lustrefs_size:$lustrefs_size size_file:$size_file"
+ if [ $lustrefs_size -lt $size_file ]; then
+ echo "WARN: less than $size_file free, skip this test."
+ return 0;
+ fi
- if [ ! -d /proc/fs/lustre/ost/ -o ! -d /proc/fs/lustre/mds ]; then
- echo "WARN: mds or ost isn't on the local machine, skip this test."
- return 0;
- fi
+ if [ ! -d /proc/fs/lustre/ost/ -o ! -d /proc/fs/lustre/mds ]; then
+ echo "WARN: mds or ost isn't local, skip this test."
+ return 0;
+ fi
- # set the D_QUOTA flag
- DBG_SAVE="`sysctl -n lnet.debug`"
- sysctl -w lnet.debug="$DBG_SAVE quota"
+ # set the D_QUOTA flag
+ set_flag=0
+ if [ -z "`sysctl lnet.debug | grep quota`" ]; then
+ sysctl -w lnet.debug="+quota"
+ set_flag=1
+ fi
- # make qd_count 32 bit
- sysctl -w lustre.fail_loc=2560
+ # make qd_count 32 bit
+ sysctl -w lustre.fail_loc=0xA00
- TESTFILE="$TSTDIR/quota_tst100"
+ TESTFILE="$TSTDIR/quota_tst100"
- echo " Set block limit $LIMIT bytes to $TSTUSR.$TSTUSR"
- BLK_LIMIT=$((100 * 1024 * 1024)) # 100G
- FILE_LIMIT=1000000
+ echo " Set block limit $LIMIT kbytes to $TSTUSR.$TSTUSR"
+ BLK_LIMIT=$((100 * 1024 * 1024)) # 100G
+ FILE_LIMIT=1000000
- echo " Set enough high limit for user: $TSTUSR"
- $LFS setquota -u $TSTUSR 0 $BLK_LIMIT 0 $FILE_LIMIT $MOUNT
- echo " Set enough high limit for group: $TSTUSR"
- $LFS setquota -g $TSTUSR 0 $BLK_LIMIT 0 $FILE_LIMIT $MOUNT
+ echo " Set enough high limit for user: $TSTUSR"
+ $LFS setquota -u $TSTUSR 0 $BLK_LIMIT 0 $FILE_LIMIT $MOUNT
+ echo " Set enough high limit for group: $TSTUSR"
+ $LFS setquota -g $TSTUSR 0 $BLK_LIMIT 0 $FILE_LIMIT $MOUNT
+
+ echo " Set stripe"
+ [ $OSTCOUNT -ge 2 ] && $LFS setstripe $TESTFILE 65536 0 $OSTCOUNT
+ touch $TESTFILE
+ chown $TSTUSR.$TSTUSR $TESTFILE
- echo " Set stripe"
- [ $OSTCOUNT -ge 2 ] && $LFS setstripe $TESTFILE 65536 0 $OSTCOUNT
- touch $TESTFILE
- chown $TSTUSR.$TSTUSR $TESTFILE
+ echo " Write the big file of $(($OSTCOUNT * 9 / 2 ))G ..."
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$size_file || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
- echo " Write the big file of $(($OSTCOUNT * 9 / 2 ))G ..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$size_file >/dev/null 2>&1 || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
+ echo " delete the big file of $(($OSTCOUNT * 9 / 2))G..."
+ $RUNAS rm -f $TESTFILE
- echo " delete the big file of $(($OSTCOUNT * 9 / 2))G..."
- $RUNAS rm -f $TESTFILE >/dev/null 2>&1
+ echo " write the big file of 2G..."
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$((1024 * 1024 * 2)) || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
- echo " write the big file of 2G..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$((1024 * 1024 * 2)) >/dev/null 2>&1 || error "(usr) write $((9 / 2 * $OSTCOUNT))G file failure, but expect success"
+ echo " delete the big file of 2G..."
+ $RUNAS rm -f $TESTFILE
- echo " delete the big file of 2G..."
- $RUNAS rm -f $TESTFILE >/dev/null 2>&1
- RC=$?
- sysctl -w lnet.debug="$DBG_SAVE"
+ # clear the flage
+ if [ $set_flag -eq 1 ]; then
+ sysctl -w lnet.debug="-quota"
+ fi
- # make qd_count 64 bit
- sysctl -w lustre.fail_loc=0
+ # make qd_count 64 bit
+ sysctl -w lustre.fail_loc=0
}
run_test 10 "run for fixing bug10707(32bit) ==========="
test_11() {
#prepare the test
}
run_test 10 "run for fixing bug10707(32bit) ==========="
test_11() {
#prepare the test
- block_limit=`df | grep $MOUNT | awk '{print $(NF - 4)}'| sed -n 1p`
+ block_limit=`(echo 0; df -t lustre -P | awk '{print $(NF - 4)}') | tail -n 1`
echo $block_limit
orig_dbr=`cat /proc/sys/vm/dirty_background_ratio`
orig_dec=`cat /proc/sys/vm/dirty_expire_centisecs`
echo $block_limit
orig_dbr=`cat /proc/sys/vm/dirty_background_ratio`
orig_dec=`cat /proc/sys/vm/dirty_expire_centisecs`
}
run_test 11 "run for fixing bug10912 ==========="
}
run_test 11 "run for fixing bug10912 ==========="
# test a deadlock between quota and journal b=11693
test_12() {
LIMIT=$(( $BUNIT_SZ * $(($OSTCOUNT + 1)) * 10)) # 10 bunits each sever
TESTFILE="$TSTDIR/quota_tst120"
TESTFILE2="$TSTDIR2/quota_tst121"
# test a deadlock between quota and journal b=11693
test_12() {
LIMIT=$(( $BUNIT_SZ * $(($OSTCOUNT + 1)) * 10)) # 10 bunits each sever
TESTFILE="$TSTDIR/quota_tst120"
TESTFILE2="$TSTDIR2/quota_tst121"
- echo " User quota (limit: $LIMIT kilobytes)"
+ echo " User quota (limit: $LIMIT kbytes)"
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setstripe $TESTFILE 65536 0 1
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setstripe $TESTFILE 65536 0 1
sysctl -w lustre.fail_loc=0x0000021f
echo " step1: write out of block quota ..."
sysctl -w lustre.fail_loc=0x0000021f
echo " step1: write out of block quota ..."
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT*2)) & > /dev/null 2>&1
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$(($LIMIT*2)) &
- $RUNAS2 dd if=/dev/zero of=$TESTFILE2 bs=$BLK_SZ count=102400 & > /dev/null 2>&1
+ $RUNAS2 dd if=/dev/zero of=$TESTFILE2 bs=$BLK_SZ count=102400 &
DDPID1=$!
echo " step2: testing ......"
DDPID1=$!
echo " step2: testing ......"
# test multiple clients write block quota b=11693
test_13() {
# test multiple clients write block quota b=11693
test_13() {
- LIMIT=$(( $BUNIT_SZ * $(($OSTCOUNT + 1)) * 8 + $BUNIT_SZ ))
- TESTFILE="$TSTDIR/quota_tst130"
- TESTFILE2="$TSTDIR2/quota_tst131"
+ # one OST * 10 + (mds + other OSTs)
+ LIMIT=$((BUNIT_SZ * 10 + (BUNIT_SZ * OSTCOUNT)))
+ TESTFILE="$TSTDIR/quota_tst13"
- echo " User quota (limit: $LIMIT kilobytes)"
+ echo " User quota (limit: $LIMIT kbytes)"
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setquota -u $TSTUSR 0 $LIMIT 0 0 $MOUNT
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
$LFS setstripe $TESTFILE 65536 0 1
chown $TSTUSR.$TSTUSR $TESTFILE
- $LFS setstripe $TESTFILE2 65536 0 1
- chown $TSTUSR.$TSTUSR $TESTFILE2
+ $LFS setstripe $TESTFILE.2 65536 0 1
+ chown $TSTUSR.$TSTUSR $TESTFILE.2
echo " step1: write out of block quota ..."
# one bunit will give mds
echo " step1: write out of block quota ..."
# one bunit will give mds
- $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$[($LIMIT - $BUNIT_SZ) / 2] & > /dev/null 2>&1
+ $RUNAS dd if=/dev/zero of=$TESTFILE bs=$BLK_SZ count=$[($LIMIT - $BUNIT_SZ) / 2] &
- $RUNAS dd if=/dev/zero of=$TESTFILE2 bs=$BLK_SZ count=$[($LIMIT - $BUNIT_SZ) / 2] & > /dev/null 2>&1
+ $RUNAS dd if=/dev/zero of=$TESTFILE.2 bs=$BLK_SZ count=$[($LIMIT - $BUNIT_SZ) / 2] &
DDPID1=$!
echo " step2: testing ......"
DDPID1=$!
echo " step2: testing ......"
sync; sleep 5; sync;
echo " step3: checking ......"
sync; sleep 5; sync;
echo " step3: checking ......"
- fz=`stat -t $TESTFILE | awk '{print $2}'`
- fz2=`stat -t $TESTFILE2 | awk '{print $2}'`
- [ $fz -ne $[($LIMIT - $BUNIT_SZ) / 2 * $BLK_SZ] ] && error "test13 failed!"
- [ $fz2 -ne $[($LIMIT - $BUNIT_SZ) / 2 * $BLK_SZ] ] && error "test13 failed!"
-
- rm -f $TESTFILE $TESTFILE2
+ fz=`stat -c %s $TESTFILE`
+ fz2=`stat -c %s $TESTFILE.2`
+ $SHOW_QUOTA_USER
+ [ $((fz + fz2)) -lt $((BUNIT_SZ * BLK_SZ * 10)) ] && \
+ error "files too small $fz + $fz < $((BUNIT_SZ * BLK_SZ * 10))"
+ [ $((fz + fz2)) -gt $((BUNIT_SZ * BLK_SZ * 11)) ] && \
+ error "files too large $fz + $fz > $((BUNIT_SZ * BLK_SZ * 11))"
+
+ rm -f $TESTFILE $TESTFILE.2
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
}
$LFS setquota -u $TSTUSR 0 0 0 0 $MOUNT # clear user limit
}
log "cleanup: ======================================================"
if [ "`mount | grep ^$NAME`" ]; then
rm -fr $TSTDIR
log "cleanup: ======================================================"
if [ "`mount | grep ^$NAME`" ]; then
rm -fr $TSTDIR
+ if [ $TEST_9_10 -eq 0 ]; then
+ post_test
+ fi
# delete test user and group
userdel "$TSTUSR"
userdel "$TSTUSR2"
# delete test user and group
userdel "$TSTUSR"
userdel "$TSTUSR2"