mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-19 02:04:19 +08:00
800b927b38
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>
50 lines
1001 B
Bash
Executable File
50 lines
1001 B
Bash
Executable File
#!/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
|