1#!/bin/bash 2# 3# Copyright (c) 2011 Bryan Schumaker <bjschuma@netapp.com> 4# 5# Script for easier NFSD fault injection 6 7# Check that debugfs has been mounted 8DEBUGFS=`cat /proc/mounts | grep debugfs` 9if [ "$DEBUGFS" == "" ]; then 10 echo "debugfs does not appear to be mounted!" 11 echo "Please mount debugfs and try again" 12 exit 1 13fi 14 15# Check that the fault injection directory exists 16DEBUGDIR=`echo $DEBUGFS | awk '{print $2}'`/nfsd 17if [ ! -d "$DEBUGDIR" ]; then 18 echo "$DEBUGDIR does not exist" 19 echo "Check that your .config selects CONFIG_NFSD_FAULT_INJECTION" 20 exit 1 21fi 22 23function help() 24{ 25 echo "Usage $0 injection_type [count]" 26 echo "" 27 echo "Injection types are:" 28 ls $DEBUGDIR 29 exit 1 30} 31 32if [ $# == 0 ]; then 33 help 34elif [ ! -f $DEBUGDIR/$1 ]; then 35 help 36elif [ $# != 2 ]; then 37 COUNT=0 38else 39 COUNT=$2 40fi 41 42BEFORE=`mktemp` 43AFTER=`mktemp` 44dmesg > $BEFORE 45echo $COUNT > $DEBUGDIR/$1 46dmesg > $AFTER 47# Capture lines that only exist in the $AFTER file 48diff $BEFORE $AFTER | grep ">" 49rm -f $BEFORE $AFTER 50