| #! /bin/sh |
| |
| MODULE_DIR=/lib/modules/`uname -r`/kernel |
| |
| case "$1" in |
| mount-unmount) |
| trap "umount $3; rm -f $2; rmdir $3" 0 |
| mkdir $3 |
| dd bs=1204k count=20 if=/dev/zero of=$2 |
| mke2fs -F $2 |
| tune2fs -c 0 $2 |
| modprobe loop |
| while true; do mount -o loop $2 $3; umount $3; sleep 1; done |
| ;; |
| bang-one) |
| trap "rmmod $2" 0 |
| while true; do modprobe $2; rmmod $2; done |
| ;; |
| bang-all) |
| while true; do |
| # Randomize order |
| find $MODULE_DIR -name '*.ko' | ( while read mod; do echo $RANDOM $mod; done ) | sort -n | |
| while read junk modname; do |
| if [ $RANDOM -gt $RANDOM ]; then |
| rmmod `basename $modname .ko` |
| else |
| modprobe `basename $modname .ko` |
| fi |
| done |
| done |
| ;; |
| "") |
| $0 mount-unmount testfs.$$ /tmp/$$ & |
| $0 bang-one ext2 & |
| $0 bang-all & |
| exit 0 |
| ;; |
| *) |
| echo Unknown arg "$1" |
| exit 1 |
| ;; |
| esac |