| #!/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 |