linux/tools/nfsd/inject_fault.sh
<<
>>
Prefs
   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