#!/bin/bash
-PATH=`dirname $0`:`dirname $0`/../utils:$PATH
+
+LUSTRE=${LUSTRE:-$(cd $(dirname $0)/..; echo $PWD)}
+
+load_llog_test() {
+ grep -q llog_test /proc/modules && return
+ # Module should have been placed with other lustre modules...
+ modprobe llog_test 2>&1 | grep -v "llog_test not found"
+ grep -q llog_test /proc/modules && return
+ # But maybe we're running from a developer tree...
+ insmod $LUSTRE/obdclass/llog_test.ko
+ grep -q llog_test /proc/modules && return
+ echo "Unable to load llog_test module!"
+ false
+ return
+}
+
+PATH=`dirname $0`:$LUSTRE/utils:$PATH
TMP=${TMP:-/tmp}
-MDS=`find /proc/fs/lustre/mds/* -type d | head -n1 | sed 's/.*\///'`
-[ -z "$MDS" ] && echo "no MDS available, skipping llog test" && exit 0
+MGS=`lctl dl | awk '/mgs/ { print $4 }'`
+[ -z "$MGS" ] && echo "$0: SKIP: no MGS available, skipping llog test" && exit 0
-insmod ../obdclass/llog_test.o || exit 1
+load_llog_test || exit 0
lctl modules > $TMP/ogdb-`hostname`
-
-# take care of UML developers
-[ -f /r/$TMP/ogdb-`hostname` ] &&
- cp -f $TMP/ogdb-`hostname` /r/$TMP/ogdb-`hostname`
echo "NOW reload debugging syms.."
RC=0
lctl <<EOT || RC=2
-newdev
attach llog_test llt_name llt_uuid
-setup $MDS
+setup $MGS
EOT
# Using ignore_errors will allow lctl to cleanup even if the test fails.
lctl <<EOC
-cfg_device llt_name
+device llt_name
ignore_errors
cleanup
detach