#!/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
#
[ -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; }
# 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.