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