summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-02-17 01:22:27 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-02-17 01:24:17 -0500
commit3cee382f3ba6ddfe2ae4f78e1e5634d4c6bbc0b8 (patch)
tree8fe9eb4f2ac7065aad35ef514a1ffb6c9b94c08a
parent8963604fe2702c79ecbac256d1ae0d9566986549 (diff)
fix merge_torture_flakey
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rwxr-xr-xtests/bcachefs/single_device.ktest21
1 files changed, 16 insertions, 5 deletions
diff --git a/tests/bcachefs/single_device.ktest b/tests/bcachefs/single_device.ktest
index 8fbd753..5f7d2d4 100755
--- a/tests/bcachefs/single_device.ktest
+++ b/tests/bcachefs/single_device.ktest
@@ -283,11 +283,18 @@ test_merge_torture_flakey()
local n=40M
local BLK_DEV_SIZE=`blockdev --getsz ${ktest_scratch_dev[0]}`
- local FLAKEY_TABLE="0 $BLK_DEV_SIZE flakey ${ktest_scratch_dev[0]} 0 180 0"
+ local FLAKEY_TABLE="0 $BLK_DEV_SIZE flakey ${ktest_scratch_dev[0]} 0 0 180"
local FLAKEY_TABLE_ERROR="0 $BLK_DEV_SIZE flakey ${ktest_scratch_dev[0]} 0 0 180 1 error_writes"
dmsetup create flakey --table "$FLAKEY_TABLE"
+ set_dm_table()
+ {
+ dmsetup suspend flakey
+ echo "$@"|dmsetup load flakey
+ dmsetup resume flakey
+ }
+
run_quiet "" bcachefs format -f --btree_node_size=32k --errors=panic /dev/mapper/flakey
for i in `seq 0 $loops`; do
@@ -300,23 +307,27 @@ test_merge_torture_flakey()
grep "^l " /sys/kernel/debug/bcachefs/*/btrees/xattrs-formats|wc -l
df -h /mnt
+ echo "inserting keys"
echo seq_insert $n 1 > /sys/fs/bcachefs/*/perf_test &
sleep 10
- echo $FLAKEY_TABLE_ERROR|dmsetup load flakey
+ echo "starting write errors"
+
+ set_dm_table "$FLAKEY_TABLE_ERROR"
wait
umount /mnt
- echo $FLAKEY_TABLE|dmsetup load flakey
+
+ set_dm_table "$FLAKEY_TABLE"
mount -t bcachefs -o fsck /dev/mapper/flakey /mnt
echo seq_delete $n 1 > /sys/fs/bcachefs/*/perf_test &
sleep 2
- echo $FLAKEY_TABLE_ERROR|dmsetup load flakey
+ set_dm_table "$FLAKEY_TABLE_ERROR"
wait
umount /mnt
- echo $FLAKEY_TABLE|dmsetup load flakey
+ set_dm_table "$FLAKEY_TABLE"
done
dmsetup remove flakey