Whamcloud - gitweb
tests: kill debugfs on interrupted MMP test
[tools/e2fsprogs.git] / tests / f_mmp / script
index 1b0ff79..d921672 100644 (file)
@@ -19,10 +19,18 @@ if [ "$status" != 0 ] ; then
        return $status
 fi
 
+kill_debugfs() {
+       trap 0
+       PID=$(ps -o pid,command | grep -v awk |
+               awk "/debugfs -w $TMPFILE/ { print \$1 }")
+       [ "x$PID" != "x" ] && kill -9 $PID
+}
+
 # this will cause debugfs to create the $test_name.mark file once it has
 # passed the MMP startup, then continue reading input until it is killed
 MARKFILE=$test_name.new
 rm -f $MARKFILE
+trap kill_debugfs EXIT
 echo "set mmp sequence to EXT2_MMP_SEQ_FSCK..." >> $test_name.log
 ( { echo dump_mmp; echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } |
        $DEBUGFS -w $TMPFILE >> $test_name.log 2>&1 & ) > /dev/null 2>&1 &
@@ -32,7 +40,7 @@ while [ ! -e $MARKFILE ]; do
 done
 rm -f $MARKFILE
 echo "kill debugfs abruptly (simulates e2fsck failure) ..." >> $test_name.log
-killall -9 debugfs >> $test_name.log
+kill_debugfs
 
 
 echo "e2fsck (should fail mmp_seq = EXT2_MMP_SEQ_FSCK) ..." >> $test_name.log