Whamcloud - gitweb
Fix ordering of module unload in head.
[fs/lustre-release.git] / lustre / tests / common.sh
index 3c65364..7b13219 100644 (file)
@@ -3,8 +3,8 @@ export PATH=$PATH:/sbin:/usr/sbin
 
 [ -d /r ] && R=/r
 
-PORTALS=$SRCDIR../../portals
-LUSTRE=$SRCDIR../../lustre
+PORTALS=$SRCDIR/../../portals
+LUSTRE=$SRCDIR/..
 
 PTLCTL=$PORTALS/linux/utils/ptlctl
 DBGCTL=$PORTALS/linux/utils/debugctl
@@ -28,7 +28,14 @@ do_insmod() {
        [ "$MODULE" ] || fail "usage: $0 <module>"
        [ -f $MODULE ] || echo "$0: module '$MODULE' not found" 1>&2
        lsmod | grep -q "\<$BASE\>" && return 0
-       insmod $MODULE
+       insmod  $MODULE
+}
+
+do_rmmod() {
+       MODULE=$1
+       [ "$MODULE" ] || fail "usage: $0 <module>"
+       lsmod | grep -q $MODULE || return 0
+       rmmod $MODULE || lsmod | sed "s/^/$MODULE failed: /"
 }
 
 # Return the next unused loop device on stdout and in the $LOOPDEV
@@ -93,7 +100,7 @@ new_fs () {
        fi
 
        # Enable hash-indexed directories for extN filesystems
-       [ "$1" = "extN" ] && echo "feature FEATURE_C5" | debugfs -w $2
+#      [ "$1" = "extN" ] && echo "feature FEATURE_C5" | debugfs -w $2
 }
 
 # Set up to use an existing filesystem.  We take the same parameters as
@@ -140,6 +147,19 @@ setup_opts() {
        [ -z "$OSC_RSH" ] && OSC_RSH="eval"
 }
 
+setup_variables() {
+       [ -z "$OSTNODE" ] && OSTNODE=$SERVER
+       [ -z "$MDSNODE" ] && MDSNODE=$SERVER
+
+       if [ -z "$DLM" ]; then
+               if [ "$LOCALHOST" == "$SERVER" ]; then
+                       DLM=localhost
+               else
+                       DLM=$SERVER
+               fi
+       fi
+}
+
 setup_portals() {
        if grep -q portals /proc/modules; then
                echo "$0: portals already appears to be set up, skipping"
@@ -151,16 +171,7 @@ setup_portals() {
                exit -1
        fi
 
-       [ -z "$OSTNODE" ] && OSTNODE=$SERVER
-       [ -z "$MDSNODE" ] && MDSNODE=$SERVER
-
-       if [ -z "$DLM" ]; then
-               if [ "$LOCALHOST" == "$SERVER" ]; then
-                       DLM=localhost
-               else
-                       DLM=$SERVER
-               fi
-       fi
+        setup_variables
 
        [ -c /dev/portals ] || mknod /dev/portals c 10 240
 
@@ -205,11 +216,12 @@ setup_lustre() {
        do_insmod $LUSTRE/mds/mds_extN.o || \
                echo "info: can't load mds_extN.o module, needs extN.o"
        do_insmod $LUSTRE/obdecho/obdecho.o || exit -1
-       do_insmod $LUSTRE/obdext2/obdext2.o || exit -1
+       #do_insmod $LUSTRE/obdext2/obdext2.o || exit -1
        do_insmod $LUSTRE/obdfilter/obdfilter.o || exit -1
        do_insmod $LUSTRE/ost/ost.o || exit -1
        do_insmod $LUSTRE/osc/osc.o || exit -1
        do_insmod $LUSTRE/mdc/mdc.o || exit -1
+       do_insmod $LUSTRE/lov/lov.o || exit -1
        do_insmod $LUSTRE/llite/llite.o || exit -1
 
         echo "$R/tmp/lustre-log" > /proc/sys/portals/debug_path
@@ -277,12 +289,31 @@ setup_mds() {
 
        $OBDCTL <<- EOF || return $?
        newdev
-       attach mds MDSDEV
+       attach mds MDSDEV MDSUUID  
        setup ${MDS} ${MDSFS}
        quit
        EOF
 }
 
+setup_mds_lov() { 
+
+       [ "$SETUP_MDS" = "y" ] || return 0
+
+        if [ -z "$LOVUUID" ]; then
+            echo "No LOV configured"
+            return
+        fi
+
+       $OBDCTL <<- EOF || return $?
+        name2dev MDSDEV
+        connect 
+        lovconfig ${LOVUUID} 1 4096 0 OSCUUID
+        disconnect
+       quit
+       EOF
+}
+
+
 setup_ost() {
        [ "$SETUP_OST" = "y" ] || return 0
 
@@ -330,19 +361,20 @@ setup_ost() {
 
        $OBDCTL <<- EOF || return $?
        newdev
-       attach ${OSTTYPE} OBDDEV
+       attach ${OSTTYPE} OBDDEV OBDUUID
        setup ${OBD} ${OBDARG}
        quit
        EOF
        $OBDCTL <<- EOF || return $?
        newdev
-       attach ost OSTDEV
+       attach ost OSTDEV OSTUUID
        setup \$OBDDEV
        quit
        EOF
 }
 
 setup_server() {
+       #setup_mds $1 && setup_mds_lov $1 && setup_ost $1
        setup_mds $1 && setup_ost $1
 }
 
@@ -360,8 +392,8 @@ setup_osc() {
 
        $OBDCTL <<- EOF || return $rc
        newdev
-       attach osc $THEOSC
-       setup OSTDEV $OSTNODE
+       attach osc $THEOSC ${THEOSC}-UUID
+       setup OBDUUID $OSTNODE
        quit
        EOF
         done
@@ -381,13 +413,29 @@ setup_mdc() {
 
        $OBDCTL <<- EOF || return $?
        newdev
-       attach mdc $THEMDC
-       setup MDSDEV $MDSNODE
+       attach mdc $THEMDC  ${THEMDC}-UUID
+       setup MDSUUID $MDSNODE
        quit
        EOF
         done
 }
 
+setup_lov () { 
+       [ "$SETUP_MDC" != "y" ] && return 0
+
+        if [ -z "$LOVUUID" ]; then
+            echo "No LOV configured"
+            return
+        fi
+
+       $OBDCTL <<- EOF || return $?
+       newdev
+       attach lov LOVNAME  ${LOVUUID}
+       setup  MDCDEV-UUID
+       quit
+       EOF
+}        
+
 
 setup_mount() {
        set -vx
@@ -413,6 +461,7 @@ setup_mount() {
 }
 
 setup_client() {
+       # setup_osc && setup_mdc && setup_lov  && setup_mount
        setup_osc && setup_mdc && setup_mount
 }
 
@@ -439,6 +488,9 @@ debug_client_on() {
 
 cleanup_portals() {
        [ -z "$NETWORK" ] && NETWORK=tcp
+
+        setup_variables
+
        $PTLCTL <<- EOF
        setup $NETWORK
        disconnect
@@ -449,35 +501,36 @@ cleanup_portals() {
        quit
        EOF
 
-       rmmod kqswnal
-       rmmod ksocknal
-       rmmod portals
+       do_rmmod ldlm
+       do_rmmod ptlrpc
+       do_rmmod obdclass
+
+       do_rmmod kqswnal
+       do_rmmod ksocknal
+       do_rmmod portals
 }
 
 cleanup_lustre() {
        killall acceptor
 
+       do_rmmod llite
+       do_rmmod lov
+       do_rmmod mdc
+       do_rmmod osc
+
+       do_rmmod mds_extN
+       do_rmmod mds_ext3
+       do_rmmod mds_ext2
+       do_rmmod mds
+       do_rmmod ost
+       do_rmmod obdecho
+       do_rmmod obdfilter
+       do_rmmod obdext2
+       do_rmmod extN
+
        losetup -d ${LOOP}0
        losetup -d ${LOOP}1
        losetup -d ${LOOP}2
-
-       rmmod llite
-       rmmod mdc
-
-       rmmod mds_extN
-       rmmod mds_ext3
-       rmmod mds_ext2
-       rmmod mds
-       rmmod ost
-       rmmod osc
-       rmmod obdecho
-       rmmod obdfilter
-       rmmod obdext2
-       rmmod extN
-
-       rmmod ldlm
-       rmmod ptlrpc
-       rmmod obdclass
 }
 
 cleanup_ldlm() {