+ if [ $? -eq 0 ]; then
+ $LFS quota -v -u $RUNAS_ID $dir
+ cancel_lru_locks osc
+ stat=$(LOCALE=C $RUNAS dd if=/dev/zero of=$file bs=$BUNIT_SZ \
+ count=$BUNIT_SZ seek=$((BUNIT_SZ*2)) 2>&1)
+ RC=$?
+ echo $stat
+ [[ $RC -eq 0 ]] && error "second dd did not fail."
+ echo $stat | grep "Disk quota exceeded" > /dev/null
+ [[ $? -eq 1 ]] && error "second dd did not fail with EDQUOT."
+ else
+ log "first dd failed with EDQUOT."
+ fi
+ $LFS quota -v -u $RUNAS_ID $dir
+}
+run_test 23a "OST pools and quota"
+
+test_23b() {
+ set_cleanup_trap
+ local POOL_ROOT=${POOL_ROOT:-$DIR/$tdir}
+ [[ $OSTCOUNT -le 1 ]] && skip_env "Need at least 2 OSTs" && return 0
+
+ mkdir -p $POOL_ROOT
+ check_runas_id $RUNAS_ID $RUNAS_GID $RUNAS || {
+ skip_env "User $RUNAS_ID does not exist - skipping"
+ return 0
+ }
+
+ local i=0
+ local TGT
+ local BUNIT_SZ=1024 # min block quota unit(kB)
+ local LIMIT=$((BUNIT_SZ * (OSTCOUNT + 1)))
+ local dir=$POOL_ROOT/dir
+ local file="$dir/$tfile-quota"
+
+ create_pool_nofail $POOL
+
+ local TGT=$(for i in $(seq 0x$TGT_FIRST 3 0x$TGT_MAX); do \
+ printf "$FSNAME-OST%04x_UUID " $i; done)
+ add_pool $POOL "$FSNAME-OST[$TGT_FIRST-$TGT_MAX/3]" "$TGT"
+ create_dir $dir $POOL
+
+ AVAIL=$($LFS df -p $POOL $dir | awk '/summary/ { print $4 }')
+ [ $AVAIL -gt $MAXFREE ] &&
+ skip_env "Filesystem space $AVAIL is larger than $MAXFREE limit" &&
+ return 0
+ log "OSTCOUNT=$OSTCOUNT, OSTSIZE=$OSTSIZE"
+ log "MAXFREE=$MAXFREE, AVAIL=$AVAIL, SLOW=$SLOW"