Whamcloud - gitweb
LU-1903 test: disable lfsck for ZFS tests
[fs/lustre-release.git] / lustre / tests / lfsck.sh
index 669054a..1c805a1 100644 (file)
@@ -1,4 +1,6 @@
 #!/bin/bash
+# -*- mode: Bash; tab-width: 4; indent-tabs-mode: t; -*-
+# vim:shiftwidth=4:softtabstop=4:tabstop=4:
 #
 # test e2fsck and lfsck to detect and fix filesystem corruption
 #
@@ -18,6 +20,10 @@ OBJGRP=${OBJGRP:-0} # the OST object group
 [ -d "$SHARED_DIRECTORY" ] || \
     { skip "SHARED_DIRECTORY should be specified with a shared directory \
 which can be accessable on all of the nodes" && exit 0; }
+[[ $(facet_fstype $SINGLEMDS) != ldiskfs ]] &&
+       skip "Only applicable to ldiskfs-based MDTs" && exit 0
+[[ $(facet_fstype OST) != ldiskfs ]] &&
+       skip "Only applicable to ldiskfs-based OST" && exit 0
 
 which getfattr &>/dev/null || { skip_env "could not find getfattr" && exit 0; }
 which setfattr &>/dev/null || { skip_env "could not find setfattr" && exit 0; }
@@ -119,23 +125,24 @@ get_ost_node() {
 
 # Get the OST target device (given the OST facet name and OST index).
 get_ost_dev() {
-    local node=$1
-    local obdidx=$2
-    local ost_name
-    local ost_dev
-
-    ost_name=$(ostname_from_index $obdidx)
-    ost_dev=$(do_node $node "lctl get_param -n obdfilter.${ost_name}.mntdev")
-    [ ${PIPESTATUS[0]} -ne 0 ] && \
-        echo "failed to find the OST device with index $obdidx on $facet" && \
-        return 1
-
-    if [[ $ost_dev = *loop* ]]; then
-        ost_dev=$(do_node $node "losetup $ost_dev" | \
-                sed -e "s/.*(//" -e "s/).*//")
-    fi
-
-    echo $ost_dev
+       local node=$1
+       local obdidx=$2
+       local ost_name
+       local ost_dev
+
+       ost_name=$(ostname_from_index $obdidx)
+       ost_dev=$(get_obdfilter_param $node $ost_name mntdev)
+       if [ $? -ne 0 ]; then
+               printf "unable to find OST%04x on $facet\n" $obdidx
+               return 1
+       fi
+
+       if [[ $ost_dev = *loop* ]]; then
+               ost_dev=$(do_node $node "losetup $ost_dev" | \
+                         sed -e "s/.*(//" -e "s/).*//")
+       fi
+
+       echo $ost_dev
 }
 
 # Get the file names to be duplicated or removed on the MDS.