run_test 66 "update inode blocks count on client ==============="
LLOOP=
+LLITELOOPLOAD=
cleanup_68() {
trap 0
if [ ! -z "$LLOOP" ]; then
rm -f $LLOOP
unset LLOOP
fi
+ if [ ! -z "$LLITELOOPLOAD" ]; then
+ rmmod llite_lloop
+ unset LLITELOOPLOAD
+ fi
rm -f $DIR/f68*
}
test_68a() {
[ "$UID" != 0 ] && skip_env "must run as root" && return
- grep -q llite_lloop /proc/modules
- [ $? -ne 0 ] && skip "can't find module llite_lloop" && return
+ trap cleanup_68 EXIT
+
+ if ! module_loaded llite_lloop; then
+ if load_module llite/llite_lloop; then
+ LLITELOOPLOAD=yes
+ else
+ skip_env "can't find module llite_lloop"
+ return
+ fi
+ fi
LLOOP=$TMP/lloop.`date +%s`.`date +%N`
dd if=/dev/zero of=$DIR/f68a bs=4k count=1024
$LCTL blockdev_attach $DIR/f68a $LLOOP || error "attach failed"
- trap cleanup_68 EXIT
-
directio rdwr $LLOOP 0 1024 4096 || error "direct write failed"
directio rdwr $LLOOP 0 1025 4096 && error "direct write should fail"
*) EXT=".ko"; USE_QUOTA=yes;;
esac
+
+module_loaded () {
+ /sbin/lsmod | grep -q $1
+}
+
load_module() {
EXT=".ko"
module=$1
shift
BASE=`basename $module $EXT`
- lsmod | grep -q ${BASE} || \
- if [ -f ${LUSTRE}/${module}${EXT} ]; then
+
+ module_loaded ${BASE} && return
+
+ if [ -f ${LUSTRE}/${module}${EXT} ]; then
insmod ${LUSTRE}/${module}${EXT} $@
else
# must be testing a "make install" or "rpm" installation
[ "`lctl dl 2> /dev/null | wc -l`" -gt 0 ] && lctl dl && \
echo "$0: lustre didn't clean up..." 1>&2 && return 202 || true
- if [ "`/sbin/lsmod 2>&1 | egrep 'lnet|libcfs'`" ]; then
+ if module_loaded lnet || module_loaded libcfs; then
echo "$0: modules still loaded..." 1>&2
/sbin/lsmod 1>&2
return 203
log() {
echo "$*"
- lsmod | grep lnet > /dev/null || load_modules
+ module_loaded lnet || load_modules
local MSG="$*"
# Get rid of '