_require_test_program "log-writes/replay-log"
local ret=0
- _log_writes_init
+ _log_writes_init $SCRATCH_DEV
_log_writes_mkfs > /dev/null 2>&1
_log_writes_mount -o dax > /dev/null 2>&1
# Check options to be sure. XFS ignores dax option
_log_writes_init()
{
- local BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
+ blkdev=$1
+
+ [ -z "$blkdev" ] && _fail \
+ "block dev must be specified for _log_writes_init"
+
+ local BLK_DEV_SIZE=`blockdev --getsz $blkdev`
LOGWRITES_NAME=logwrites-test
LOGWRITES_DMDEV=/dev/mapper/$LOGWRITES_NAME
- LOGWRITES_TABLE="0 $BLK_DEV_SIZE log-writes $SCRATCH_DEV $LOGWRITES_DEV"
+ LOGWRITES_TABLE="0 $BLK_DEV_SIZE log-writes $blkdev $LOGWRITES_DEV"
_dmsetup_create $LOGWRITES_NAME --table "$LOGWRITES_TABLE" || \
_fail "failed to create log-writes device"
}
# _log_writes_replay_log <mark>
#
-# This replays the log contained on $LOGWRITES_DEV onto $SCRATCH_DEV upto the
+# This replays the log contained on $LOGWRITES_DEV onto blkdev upto the
# mark passed in.
_log_writes_replay_log()
{
_mark=$1
+ _blkdev=$2
+
+ [ -z "$_blkdev" ] && _fail \
+ "block dev must be specified for _log_writes_replay_log"
$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 \
+ $here/src/log-writes/replay-log --log $LOGWRITES_DEV --replay $_blkdev \
--end-mark $_mark >> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "replay failed"
}
_log_writes_replay_log_range()
{
local end=$1
+ local blkdev=$2
[ -z "$end" ] && _fail \
"end entry must be specified for _log_writes_replay_log_range"
+ [ -z "$blkdev" ] && _fail \
+ "block dev must be specified for _log_writes_replay_log_range"
# To ensure we replay the last entry,
# we need to manually increase the end entry number to ensure
# it's played
echo "=== replay to $end ===" >> $seqres.full
$here/src/log-writes/replay-log --log $LOGWRITES_DEV \
- --replay $SCRATCH_DEV --limit $(($end + 1)) \
+ --replay $blkdev --limit $(($end + 1)) \
>> $seqres.full 2>&1
[ $? -ne 0 ] && _fail "replay failed"
}
local filename=$(basename $i)
local mark="${filename##*.}"
echo "checking $filename" >> $seqres.full
- _log_writes_replay_log $filename
+ _log_writes_replay_log $filename $SCRATCH_DEV
_scratch_mount
local expected_md5=$(_md5_checksum $i)
local md5=$(_md5_checksum $SCRATCH_MNT/$name)
mkdir $SANITY_DIR
# Create the log
-_log_writes_init
+_log_writes_init $SCRATCH_DEV
_log_writes_mkfs >> $seqres.full 2>&1
# check pre umount
echo "checking pre umount" >> $seqres.full
-_log_writes_replay_log last
+_log_writes_replay_log last $SCRATCH_DEV
_scratch_mount
_scratch_unmount
_check_scratch_fs
# Check the end
echo "checking post umount" >> $seqres.full
-_log_writes_replay_log end
+_log_writes_replay_log end $SCRATCH_DEV
_scratch_mount
for j in `seq 0 $((NUM_FILES-1))`; do
md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
local filename=$(basename $i)
local mark="${filename##*.}"
echo "checking $filename" >> $seqres.full
- _log_writes_replay_log $filename
+ _log_writes_replay_log $filename $SCRATCH_DEV
_scratch_mount
local expected_md5=$(_md5_checksum $i)
local md5=$(_md5_checksum $SCRATCH_MNT/$name)
mkdir $SANITY_DIR
# Create the log
-_log_writes_init
+_log_writes_init $SCRATCH_DEV
_log_writes_mkfs >> $seqres.full 2>&1
# check pre umount
echo "checking pre umount" >> $seqres.full
-_log_writes_replay_log last
+_log_writes_replay_log last $SCRATCH_DEV
_scratch_mount
_scratch_unmount
_check_scratch_fs
# Check the end
echo "checking post umount" >> $seqres.full
-_log_writes_replay_log end
+_log_writes_replay_log end $SCRATCH_DEV
_scratch_mount
for j in `seq 0 $((NUM_FILES-1))`; do
md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
_require_xfs_io_command "mmap" "-S"
_require_xfs_io_command "log_writes"
-_log_writes_init
+_log_writes_init $SCRATCH_DEV
_log_writes_mkfs >> $seqres.full 2>&1
_log_writes_mount -o dax
_scratch_mkfs >> $seqres.full 2>&1
# check pre-unmap state
-_log_writes_replay_log preunmap
+_log_writes_replay_log preunmap $SCRATCH_DEV
_scratch_mount
# We should see $SCRATCH_MNT/test as having 1 MiB in block allocations
$FSSTRESS_AVOID)
_test_unmount
-_log_writes_init
+_log_writes_init $SCRATCH_DEV
_log_writes_mkfs >> $seqres.full 2>&1
_log_writes_mark mkfs
[ -z "$cur" ] && _fail "failed to locate next FUA write"
while [ ! -z "$cur" ]; do
- _log_writes_replay_log_range $cur >> $seqres.full
+ _log_writes_replay_log_range $cur $SCRATCH_DEV >> $seqres.full
# Here we need extra mount to replay the log, mainly for journal based
# fs, as their fsck will report dirty log as error.