#!/bin/sh

PREREQ="mdadm mdrun multipath"

prereqs()
{
	echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
	prereqs
	exit 0
	;;
esac

if [ ! -e /sbin/lvm ]; then
	exit 0
fi

dev="$1"

case "$dev" in
/dev/mapper/*)
	dev="${dev#/dev/mapper/}"

	eval $(dmsetup splitname --nameprefixes --noheadings --rows "$dev")

	if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then
		lvm lvchange -aly --ignorelockingfailure "$DM_VG_NAME/$DM_LV_NAME"
		rc=$?
		if [ $rc = 5 ]; then
			echo "Unable to find LVM volume $DM_VG_NAME/$DM_LV_NAME"
		fi
	fi
	;;

/dev/*/*)
	# Could be /dev/VG/LV; use lvs to check
	dev="${dev#/dev/}"
	if lvm lvs -- "$dev" >/dev/null 2>/dev/null; then
		lvm lvchange -aly --ignorelockingfailure "$dev"
	fi
	;;
esac

exit 0
