diff options
Diffstat (limited to 'tools/nfsd/inject_fault.sh')
| -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 00000000000..06a399ac8b2 --- /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  | 
