diff --git a/lustre/tests/mmp.sh b/lustre/tests/mmp.sh
index 77a5f23..0444e0b 100755
--- a/lustre/tests/mmp.sh
+++ b/lustre/tests/mmp.sh
@@ -545,6 +545,17 @@ test_9() {
     local mdt_mmp_check_interval
     local ost_mmp_check_interval
 
+    # fill the filesystem to slow down fsck
+    setupall
+    DIR=$MOUNT/d0.mmp
+    mkdir -p $DIR
+    chattr +T $DIR
+    echo "create dirs for mdt device..."
+    createmany -d $DIR/d 50000
+    echo "create objects for ost device..."
+    createmany -o $DIR/f 100000
+    stopall
+
     start $MMP_MDS $MMP_MDSDEV $MDS_MOUNT_OPTS || return ${PIPESTATUS[0]}
     if ! start $MMP_OSS $MMP_OSTDEV $OST_MOUNT_OPTS; then
         local rc=${PIPESTATUS[0]}
@@ -554,7 +565,7 @@ test_9() {
     stop_services primary || return ${PIPESTATUS[0]}
 
     mdt_mmp_check_interval=$(get_mmp_check_interval $MMP_MDS $MMP_MDSDEV)
-    run_e2fsck $MMP_MDS_FAILOVER $MMP_MDSDEV "-fy" &
+    run_e2fsck $MMP_MDS_FAILOVER $MMP_MDSDEV "-fyF" &
     e2fsck_pid=$!
     sleep $((2 * $mdt_mmp_check_interval))
     kill -s ABRT $e2fsck_pid
@@ -570,7 +581,7 @@ test_9() {
 
     echo
     ost_mmp_check_interval=$(get_mmp_check_interval $MMP_OSS $MMP_OSTDEV)
-    run_e2fsck $MMP_OSS_FAILOVER $MMP_OSTDEV "-fy" &
+    run_e2fsck $MMP_OSS_FAILOVER $MMP_OSTDEV "-fyF" &
     e2fsck_pid=$!
     sleep $((2 * $ost_mmp_check_interval))
     kill -s ABRT $e2fsck_pid
@@ -583,6 +594,12 @@ test_9() {
     fi
 
     reset_mmp_block $MMP_OSS $MMP_OSTDEV || return ${PIPESTATUS[0]}
+
+    # cleanup dirs & files
+    setupall
+    rm -fr $DIR
+    stopall
+
     return 0
 }
 run_test 9 "mount after aborted e2fsck"