- local e2fsck_pid
-
- run_e2fsck $MMP_MDS $MMP_MDSDEV "-fy" &
- e2fsck_pid=$!
- sleep 1
-
- log "Mounting $MMP_MDSDEV on $MMP_MDS_FAILOVER..."
- if start $MMP_MDS_FAILOVER $MMP_MDSDEV $MDS_MOUNT_OPTS; then
- error_noexit "mount $MMP_MDSDEV on $MMP_MDS_FAILOVER should fail"
- stop $MMP_MDS_FAILOVER || return ${PIPESTATUS[0]}
- return 1
- fi
-
- wait $e2fsck_pid
-
- echo
- run_e2fsck $MMP_OSS $MMP_OSTDEV "-fy" &
- e2fsck_pid=$!
- sleep 1
-
- log "Mounting $MMP_OSTDEV on $MMP_OSS_FAILOVER..."
- if start $MMP_OSS_FAILOVER $MMP_OSTDEV $OST_MOUNT_OPTS; then
- error_noexit "mount $MMP_OSTDEV on $MMP_OSS_FAILOVER should fail"
- stop $MMP_OSS_FAILOVER || return ${PIPESTATUS[0]}
- return 2
- fi
-
- wait $e2fsck_pid
- return 0
+ local e2fsck_pid
+ local saved_interval
+ local new_interval
+
+ # After writing a new sequence number into the MMP block, e2fsck will
+ # sleep at least (2 * new_interval + 1) seconds before it goes into
+ # e2fsck passes.
+ new_interval=30
+
+ # MDT
+ saved_interval=$(get_mmp_update_interval $MMP_MDS $MMP_MDSDEV)
+ set_mmp_update_interval $MMP_MDS $MMP_MDSDEV $new_interval
+
+ run_e2fsck $MMP_MDS $MMP_MDSDEV "-fy" &
+ e2fsck_pid=$!
+ sleep 5
+
+ if start $MMP_MDS_FAILOVER $MMP_MDSDEV $MDS_MOUNT_OPTS; then
+ error_noexit \
+ "mount $MMP_MDSDEV on $MMP_MDS_FAILOVER should fail"
+ stop $MMP_MDS_FAILOVER || return ${PIPESTATUS[0]}
+ set_mmp_update_interval $MMP_MDS $MMP_MDSDEV $saved_interval
+ return 1
+ fi
+
+ wait $e2fsck_pid
+ set_mmp_update_interval $MMP_MDS $MMP_MDSDEV $saved_interval
+
+ # OST
+ echo
+ saved_interval=$(get_mmp_update_interval $MMP_OSS $MMP_OSTDEV)
+ set_mmp_update_interval $MMP_OSS $MMP_OSTDEV $new_interval
+
+ run_e2fsck $MMP_OSS $MMP_OSTDEV "-fy" &
+ e2fsck_pid=$!
+ sleep 5
+
+ if start $MMP_OSS_FAILOVER $MMP_OSTDEV $OST_MOUNT_OPTS; then
+ error_noexit \
+ "mount $MMP_OSTDEV on $MMP_OSS_FAILOVER should fail"
+ stop $MMP_OSS_FAILOVER || return ${PIPESTATUS[0]}
+ set_mmp_update_interval $MMP_OSS $MMP_OSTDEV $saved_interval
+ return 2
+ fi
+
+ wait $e2fsck_pid
+ set_mmp_update_interval $MMP_OSS $MMP_OSTDEV $saved_interval
+ return 0