+run_test 15c "remove multiple OST orphans"
+
+test_16() {
+ replay_barrier $SINGLEMDS
+ createmany -o $MOUNT1/$tfile- 25
+ createmany -o $MOUNT2/$tfile-2- 1
+ umount $MOUNT2
+
+ facet_failover $SINGLEMDS
+ sleep $TIMEOUT
+ facet_failover $SINGLEMDS
+ df $MOUNT || return 1
+
+ unlinkmany $MOUNT1/$tfile- 25 || return 2
+
+ zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
+ return 0
+
+}
+run_test 16 "fail MDS during recovery (3571)"
+
+test_17() {
+ createmany -o $MOUNT1/$tfile- 25
+ createmany -o $MOUNT2/$tfile-2- 1
+
+ # Make sure the disconnect is lost
+ replay_barrier ost1
+ umount $MOUNT2
+
+ facet_failover ost1
+ sleep $TIMEOUT
+ facet_failover ost1
+ df $MOUNT || return 1
+
+ unlinkmany $MOUNT1/$tfile- 25 || return 2
+
+ zconf_mount `hostname` $MOUNT2 || error "mount $MOUNT2 fail"
+ return 0
+
+}
+run_test 17 "fail OST during recovery (3571)"
+
+# cleanup with blocked enqueue fails until timer elapses (MDS busy), wait for it
+export NOW=0
+
+test_18() { # bug 3822 - evicting client with enqueued lock
+ #set -vx
+ mkdir -p $MOUNT1/$tdir
+ touch $MOUNT1/$tdir/f0
+#define OBD_FAIL_LDLM_ENQUEUE_BLOCKED 0x30b
+ statmany -s $MOUNT1/$tdir/f 1 500 &
+ OPENPID=$!
+ NOW=`date +%s`
+ do_facet $SINGLEMDS sysctl -w lustre.fail_loc=0x8000030b # hold enqueue
+ sleep 1
+#define OBD_FAIL_LDLM_BL_CALLBACK 0x305
+ do_facet client sysctl -w lustre.fail_loc=0x80000305 # drop cb, evict
+ cancel_lru_locks mdc
+ usleep 500 # wait to ensure first client is one that will be evicted
+ openfile -f O_RDONLY $MOUNT2/$tdir/f0
+ wait $OPENPID
+ dmesg | grep "entering recovery in server" && \
+ error "client not evicted" || true
+}
+run_test 18 "ldlm_handle_enqueue succeeds on evicted export (3822)"
+
+test_19() { # Bug 10991 - resend of open request does not fail assertion.
+ replay_barrier $SINGLEMDS
+ drop_ldlm_reply "createmany -o $DIR/$tfile 1" || return 1
+ fail $SINGLEMDS
+ checkstat $DIR2/${tfile}0 || return 2
+ rm $DIR/${tfile}0 || return 3
+
+ return 0
+}
+run_test 19 "resend of open request"
+
+equals_msg `basename $0`: test complete, cleaning up
+SLEEP=$((`date +%s` - $NOW))
+[ $SLEEP -lt $TIMEOUT ] && sleep $SLEEP
+check_and_cleanup_lustre
+[ -f "$TESTSUITELOG" ] && cat $TESTSUITELOG || true