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) | |
| download | linux-800b927b38c7cdfbd7df39d7a8a4b065637ab7b6.tar.bz2 | |
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 @@ +#!/bin/bash +# +# Copyright (c) 2011 Bryan Schumaker <bjschuma@netapp.com> +# +# Script for easier NFSD fault injection + +# Check that debugfs has been mounted +DEBUGFS=`cat /proc/mounts | grep debugfs` +if [ "$DEBUGFS" == "" ]; then +	echo "debugfs does not appear to be mounted!" +	echo "Please mount debugfs and try again" +	exit 1 +fi + +# Check that the fault injection directory exists +DEBUGDIR=`echo $DEBUGFS | awk '{print $2}'`/nfsd +if [ ! -d "$DEBUGDIR" ]; then +	echo "$DEBUGDIR does not exist" +	echo "Check that your .config selects CONFIG_NFSD_FAULT_INJECTION" +	exit 1 +fi + +function help() +{ +	echo "Usage $0 injection_type [count]" +	echo "" +	echo "Injection types are:" +	ls $DEBUGDIR +	exit 1 +} + +if [ $# == 0 ]; then +	help +elif [ ! -f $DEBUGDIR/$1 ]; then +	help +elif [ $# != 2 ]; then +	COUNT=0 +else +	COUNT=$2 +fi + +BEFORE=`mktemp` +AFTER=`mktemp` +dmesg > $BEFORE +echo $COUNT > $DEBUGDIR/$1 +dmesg > $AFTER +# Capture lines that only exist in the $AFTER file +diff $BEFORE $AFTER | grep ">" +rm -f $BEFORE $AFTER |