dm-log-writes: only replay log to marks that exist

The 'replay-log' executable will replay the dm-log-writes log until
the given mark, or until the end of the log if the mark isn't found.

This means that if the mark you're looking for was never inserted in
the log or if you give garbage to _log_writes_replay_log() the
entire log will be replayed.  This can cause unexpected test
results.

Fix this by making sure that the mark we're given actually exists in
the log before we allow the replay.

Signed-off-by: Ross Zwisler <ross.zwisler@linux.intel.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Ross Zwisler
2017-12-05 17:37:43 -07:00
committed by Eryu Guan
parent 0920e16103
commit 1475bdd1f7
+4
View File
@@ -72,6 +72,10 @@ _log_writes_replay_log()
{
_mark=$1
$here/src/log-writes/replay-log --log $LOGWRITES_DEV --find \
--end-mark $_mark >> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "mark '$_mark' does not exist"
$here/src/log-writes/replay-log --log $LOGWRITES_DEV --replay $SCRATCH_DEV \
--end-mark $_mark >> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "replay failed"