You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.0 KiB
50 lines
1.0 KiB
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
#
|
|
# 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
|
|
|