+# bug 3462 - multiple simultaneous MDC requests
+test_69() {
+ mkdir $DIR/D68-1
+ mkdir $DIR/D68-2
+ multiop $DIR/D68-1/f68-1 O_c &
+ pid1=$!
+ #give multiop a chance to open
+ usleep 500
+
+ echo 0x80000129 > /proc/sys/lustre/fail_loc
+ multiop $DIR/D68-1/f68-2 Oc &
+ sleep 1
+ echo 0 > /proc/sys/lustre/fail_loc
+
+ multiop $DIR/D68-2/f68-3 Oc &
+ pid3=$!
+
+ kill -USR1 $pid1
+ wait $pid1 || return 1
+
+ sleep 25
+
+ $CHECKSTAT -t file $DIR/D68-1/f68-1 || return 4
+ $CHECKSTAT -t file $DIR/D68-1/f68-2 || return 5
+ $CHECKSTAT -t file $DIR/D68-2/f68-3 || return 6
+
+ rm -rf $DIR/D68-*
+}
+run_test 69 "multiple MDC requests (should not deadlock)"
+
+
+test_70() {
+ STAT="/proc/fs/lustre/osc/OSC*MNT*/stats"
+ mkdir $DIR/d70
+ dd if=/dev/zero of=$DIR/d70/file bs=512 count=5
+ cancel_lru_locks OSC
+ cat $DIR/d70/file >/dev/null
+ # Hopefully there is only one.
+ ENQ=`cat $STAT|awk -vnum=0 '/ldlm_enq/ {num += $2} END {print num;}'`
+ CONV=`cat $STAT|awk -vnum=0 '/ldlm_conv/ {num += $2} END {print num;}'`
+ CNCL=`cat $STAT|awk -vnum=0 '/ldlm_canc/ {num += $2} END {print num;}'`
+ dd if=/dev/zero of=$DIR/d70/file bs=512 count=5
+ ENQ1=`cat $STAT|awk -vnum=0 '/ldlm_enq/ {num += $2} END {print num;}'`
+ CONV1=`cat $STAT|awk -vnum=0 '/ldlm_conv/ {num += $2} END {print num;}'`
+ CNCL1=`cat $STAT|awk -vnum=0 '/ldlm_canc/ {num += $2} END {print num;}'`
+
+ if [ $CONV1 -le $CONV ] ; then
+ error "No conversion happened. Before: enq $ENQ, conv $CONV, cancel $CNCL ; After: enq $ENQ1, conv $CONV1, cancel $CNCL1"
+ else
+ echo "OK"
+ true
+ fi
+
+}
+run_test 70 "Test that PR->PW conversion takes place ==========="
+
+test_71() {
+ cp `which dbench` $DIR
+
+ [ ! -f $DIR/dbench ] && echo "dbench not installed, skip this test" && return 0
+
+ TGT=$DIR/client.txt
+ SRC=${SRC:-/usr/lib/dbench/client.txt}
+ [ ! -e $TGT -a -e $SRC ] && echo "copying $SRC to $TGT" && cp $SRC $TGT
+ SRC=/usr/lib/dbench/client_plain.txt
+ [ ! -e $TGT -a -e $SRC ] && echo "copying $SRC to $TGT" && cp $SRC $TGT
+
+ echo "copying /lib to $DIR"
+ cp -r /lib $DIR/lib
+
+ echo "chroot $DIR /dbench -c client.txt 2"
+ chroot $DIR /dbench -c client.txt 2
+ RC=$?
+
+ rm -f $DIR/dbench
+ rm -f $TGT
+ rm -fr $DIR/lib
+
+ return $RC
+}
+run_test 71 "Running dbench on lustre (don't segment fault) ===="
+