-test_21() {
- mdc1dev=`find_dev_for_fs_and_mds 0 mds1`
- mdc2dev=`find_dev_for_fs_and_mds 1 mds1`
- multiop $MOUNT1/f21 O
- cancel_lru_locks MDC
- # generate IT_OPEN to be replayed against existing file
- multiop $MOUNT1/f21 o_Sc &
- pid=$!
-
- # IT_OPEN will be committed by the failover time
- replay_barrier mds1
-
- # generate MDS_REINT_UNLINK to be replayed
- rm -f $MOUNT2/f21 || return 1
-
- # disable recovery on the both clients
- $LCTL --device %$mdc1dev disable_recovery
- $LCTL --device %$mdc2dev disable_recovery
- facet_failover mds1
-
- # let unlink to be replayed first
- $LCTL --device %$mdc2dev enable_recovery
- sleep $((TIMEOUT/2))
-
- # now let open to be replaye
- $LCTL --device %$mdc1dev enable_recovery
- kill -USR1 $pid
- wait $pid || return 2
+test_21b() {
+ [ -z "$CLIENTS" ] && skip "Need two or more clients." && return
+ [ $CLIENTCOUNT -lt 2 ] && \
+ { skip "Need two or more clients, have $CLIENTCOUNT" && return; }
+
+ if [ "$FAILURE_MODE" = "HARD" ] && mixed_mdt_devs; then
+ skip "Several mdt services on one mds node are used with FAILURE_MODE=$FAILURE_MODE. "
+ return 0
+ fi
+
+
+ zconf_umount_clients $CLIENTS $MOUNT2
+ zconf_mount_clients $CLIENTS $MOUNT1
+
+ local param_file=$TMP/$tfile-params
+
+ local num=$(get_mds_dir $MOUNT1)
+
+ save_lustre_params $(facet_active_host mds$num) "mdt.*.commit_on_sharing" > $param_file
+
+ # COS enabled
+ local COS=1
+ do_facet mds$num lctl set_param mdt.*.commit_on_sharing=$COS
+
+ test_21b_sub mds$num || error "Not all renames are replayed. COS=$COS"
+
+ # COS disabled (should fail)
+ COS=0
+ do_facet mds$num lctl set_param mdt.*.commit_on_sharing=$COS
+
+ test_21b_sub mds$num && error "Not all renames are replayed. COS=$COS"
+
+ restore_lustre_params < $param_file
+ rm -f $param_file
+ return 0