|
@@ -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
|