diff options
author | Bryan Schumaker <bjschuma@netapp.com> | 2011-11-01 13:35:22 -0400 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2011-11-07 21:10:47 -0500 |
commit | 800b927b38c7cdfbd7df39d7a8a4b065637ab7b6 (patch) | |
tree | 0428f5b9a1edd5e39566cccb143e5b5aaf44d0a6 /tools/nfsd | |
parent | 65178db42a02c7984f711614546e97e9952d8e01 (diff) |
NFSD: Added fault injection script
This script provides a convenient way to use the NFSD fault injection
framework. Fault injection writes to dmesg using the KERN_INFO flag, so
this script will compare the before and after output of `dmesg` to show
the user what happened
Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'tools/nfsd')
-rwxr-xr-x | tools/nfsd/inject_fault.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tools/nfsd/inject_fault.sh b/tools/nfsd/inject_fault.sh new file mode 100755 index 000000000000..06a399ac8b2f --- /dev/null +++ b/tools/nfsd/inject_fault.sh | |||
@@ -0,0 +1,49 @@ | |||
1 | #!/bin/bash | ||
2 | # | ||
3 | # Copyright (c) 2011 Bryan Schumaker <bjschuma@netapp.com> | ||
4 | # | ||
5 | # Script for easier NFSD fault injection | ||
6 | |||
7 | # Check that debugfs has been mounted | ||
8 | DEBUGFS=`cat /proc/mounts | grep debugfs` | ||
9 | if [ "$DEBUGFS" == "" ]; then | ||
10 | echo "debugfs does not appear to be mounted!" | ||
11 | echo "Please mount debugfs and try again" | ||
12 | exit 1 | ||
13 | fi | ||
14 | |||
15 | # Check that the fault injection directory exists | ||
16 | DEBUGDIR=`echo $DEBUGFS | awk '{print $2}'`/nfsd | ||
17 | if [ ! -d "$DEBUGDIR" ]; then | ||
18 | echo "$DEBUGDIR does not exist" | ||
19 | echo "Check that your .config selects CONFIG_NFSD_FAULT_INJECTION" | ||
20 | exit 1 | ||
21 | fi | ||
22 | |||
23 | function help() | ||
24 | { | ||
25 | echo "Usage $0 injection_type [count]" | ||
26 | echo "" | ||
27 | echo "Injection types are:" | ||
28 | ls $DEBUGDIR | ||
29 | exit 1 | ||
30 | } | ||
31 | |||
32 | if [ $# == 0 ]; then | ||
33 | help | ||
34 | elif [ ! -f $DEBUGDIR/$1 ]; then | ||
35 | help | ||
36 | elif [ $# != 2 ]; then | ||
37 | COUNT=0 | ||
38 | else | ||
39 | COUNT=$2 | ||
40 | fi | ||
41 | |||
42 | BEFORE=`mktemp` | ||
43 | AFTER=`mktemp` | ||
44 | dmesg > $BEFORE | ||
45 | echo $COUNT > $DEBUGDIR/$1 | ||
46 | dmesg > $AFTER | ||
47 | # Capture lines that only exist in the $AFTER file | ||
48 | diff $BEFORE $AFTER | grep ">" | ||
49 | rm -f $BEFORE $AFTER | ||