262bf54144
When an AoE device is detected, the kernel is informed, and a new block device is created. If the device is unused, the block device corresponding to remote device that is no longer available may be removed from the system by telling the aoe driver to "flush" its list of devices. Without this patch, software like GPFS and LVM may attempt to read from AoE devices that were discovered earlier but are no longer present, blocking until the I/O attempt times out. Signed-off-by: Ed L. Cashin <ecashin@coraid.com> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
42 lines
841 B
Bash
42 lines
841 B
Bash
#!/bin/sh
|
|
|
|
n_shelves=${n_shelves:-10}
|
|
n_partitions=${n_partitions:-16}
|
|
|
|
if test "$#" != "1"; then
|
|
echo "Usage: sh `basename $0` {dir}" 1>&2
|
|
echo " n_partitions=16 sh `basename $0` {dir}" 1>&2
|
|
exit 1
|
|
fi
|
|
dir=$1
|
|
|
|
MAJOR=152
|
|
|
|
echo "Creating AoE devnode files in $dir ..."
|
|
|
|
set -e
|
|
|
|
mkdir -p $dir
|
|
|
|
# (Status info is in sysfs. See status.sh.)
|
|
# rm -f $dir/stat
|
|
# mknod -m 0400 $dir/stat c $MAJOR 1
|
|
rm -f $dir/err
|
|
mknod -m 0400 $dir/err c $MAJOR 2
|
|
rm -f $dir/discover
|
|
mknod -m 0200 $dir/discover c $MAJOR 3
|
|
rm -f $dir/interfaces
|
|
mknod -m 0200 $dir/interfaces c $MAJOR 4
|
|
rm -f $dir/revalidate
|
|
mknod -m 0200 $dir/revalidate c $MAJOR 5
|
|
rm -f $dir/flush
|
|
mknod -m 0200 $dir/flush c $MAJOR 6
|
|
|
|
export n_partitions
|
|
mkshelf=`echo $0 | sed 's!mkdevs!mkshelf!'`
|
|
i=0
|
|
while test $i -lt $n_shelves; do
|
|
sh -xc "sh $mkshelf $dir $i"
|
|
i=`expr $i + 1`
|
|
done
|