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