50 lines
1,001 B
Bash
50 lines
1,001 B
Bash
![]() |
#!/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
|