blob: b5370ba68f0ccd4afe6d4e6994e777bd87a39674 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
##/bin/bash
# SPDX-License-Identifier: GPL-2.0
#
# common functions for setting up and tearing down block device error injection
_require_fail_make_request()
{
[ -f "$DEBUGFS_MNT/fail_make_request/probability" ] \
|| _notrun "$DEBUGFS_MNT/fail_make_request \
not found. Seems that CONFIG_FAULT_INJECTION_DEBUG_FS kernel config option not enabled"
}
_allow_fail_make_request()
{
local prob="${1:-100}"
local times="${2:-9999999}"
local verbose="${3:-0}"
echo "Allow global fail_make_request feature"
echo "$prob" > $DEBUGFS_MNT/fail_make_request/probability
echo "$times" > $DEBUGFS_MNT/fail_make_request/times
echo "$verbose" > $DEBUGFS_MNT/fail_make_request/verbose
}
_disallow_fail_make_request()
{
echo "Disallow global fail_make_request feature"
echo 0 > $DEBUGFS_MNT/fail_make_request/probability
echo 0 > $DEBUGFS_MNT/fail_make_request/times
echo 0 > $DEBUGFS_MNT/fail_make_request/verbose
}
_bdev_fail_make_request()
{
local bdev="$1"
local status="$2"
local sysfs_bdev=$(_sysfs_dev $bdev)
echo " echo $status > $sysfs_bdev/make-it-fail" >> $seqres.full
echo "$status" > $sysfs_bdev/make-it-fail
}
_start_fail_scratch_dev()
{
echo "Force SCRATCH_DEV device failure"
_prepare_for_eio_shutdown $SCRATCH_DEV
_bdev_fail_make_request $SCRATCH_DEV 1
[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \
_bdev_fail_make_request $SCRATCH_LOGDEV 1
[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \
_bdev_fail_make_request $SCRATCH_RTDEV 1
}
_stop_fail_scratch_dev()
{
echo "Make SCRATCH_DEV device operable again"
[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_RTDEV" ] && \
_bdev_fail_make_request $SCRATCH_RTDEV 0
[ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \
_bdev_fail_make_request $SCRATCH_LOGDEV 0
_bdev_fail_make_request $SCRATCH_DEV 0
}
|