X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Ftest-framework.sh;h=7953df33dbe29cae076cb95d1c0b91c800da4384;hb=545f947c373dc2c306a2f5f67743b95654b67a87;hp=ec6415a843e5b8597f6ab74c245e3e9957f40799;hpb=ca6bdcd8e8d3e01dd4ad56312efa3dd7657e6dda;p=fs%2Flustre-release.git diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index ec6415a..7953df3 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -738,6 +738,34 @@ ostdevlabel() { echo -n $label } +# +# This and set_obdfilter_param() shall be used to access OSD parameters +# once existed under "obdfilter": +# +# mntdev +# stats +# read_cache_enable +# writethrough_cache_enable +# +get_obdfilter_param() { + local nodes=$1 + local device=${2:-$FSNAME-OST*} + local name=$3 + + do_nodes $nodes "$LCTL get_param -n obdfilter.$device.$name \ + osd-*.$device.$name" 2>&1 | grep -v 'Found no match' +} + +set_obdfilter_param() { + local nodes=$1 + local device=${2:-$FSNAME-OST*} + local name=$3 + local value=$4 + + do_nodes $nodes "$LCTL set_param -n obdfilter.$device.$name=$value \ + osd-*.$device.$name=$value" 2>&1 | grep -v 'Found no match' +} + set_debug_size () { local dz=${1:-$DEBUG_SIZE} @@ -3015,26 +3043,24 @@ cleanup_and_setup_lustre() { # Get all of the server target devices from a given server node and type. get_mnt_devs() { - local node=$1 - local type=$2 - local obd_type - local devs - local dev - - case $type in - mdt) obd_type="osd" ;; - ost) obd_type="obdfilter" ;; # needs to be fixed when OST also uses an OSD - *) echo "invalid server type" && return 1 ;; - esac + local node=$1 + local type=$2 + local devs + local dev - devs=$(do_node $node "lctl get_param -n $obd_type*.*.mntdev") - for dev in $devs; do - case $dev in - *loop*) do_node $node "losetup $dev" | \ - sed -e "s/.*(//" -e "s/).*//" ;; - *) echo $dev ;; - esac - done + if [ "$type" == ost ]; then + devs=$(get_obdfilter_param $node "" mntdev) + else + devs=$(do_node $node \ + "lctl get_param -n osd-*.$FSNAME-M*.mntdev") + fi + for dev in $devs; do + case $dev in + *loop*) do_node $node "losetup $dev" | \ + sed -e "s/.*(//" -e "s/).*//" ;; + *) echo $dev ;; + esac + done } # Get all of the server target devices.