#!/sbin/sh
#
# Copyright (c) 1995, by Sun Microsystems, Inc.
#
#ident  "@(#)rootreserve	1.8	98/04/02 SMI"

ss=$1
SSAADM=/usr/sbin/ssaadm
SCSSA=/opt/SUNWcluster/bin/scssa

if [ "${ss}" != "start" -a "${ss}" != "stop" ]; then
	echo "Usage: /etc/init.d/rootreserve { start | stop }"
	exit 1
fi


do_cmd ()
{	
	case $ss in
	'start' )
		if [ -f ${SSAADM} ]; then
			${SSAADM} reserve /dev/rdsk/$1
		else
			${SCSSA} reserve $1
		fi ;;
	'stop' )
		if [ -f ${SSAADM} ]; then
	        	${SSAADM} release /dev/rdsk/$1
		else
			${SCSSA} release $1
		fi ;;
	esac
}


rootdev=`cat /etc/vfstab | egrep -v "^[	 ]*#" | egrep '[	 ]/[	 ]' | /usr/bin/awk '{print $2}'`
echo "${rootdev}" | egrep '/dev/rdsk/c[0-9]+t[0-9]+d[0-9]s[0-9]' > /dev/null 2>&1
if [ "$?" -eq 0 ]; then
	rootdev=`echo ${rootdev} | sed -e 's/s[0-9]/s2/'`
	rootdev=`echo ${rootdev} | sed -e 's|/dev/rdsk/||'`
	do_cmd "${rootdev}"
else
	echo "${rootdev}" | egrep '/dev/vx/rdsk/rootvol' > /dev/null 2>&1
	if [ "$?" -eq 0 ]; then
		rootvol=`echo ${rootdev} | sed -e 's|/dev/vx/rdsk/||'`
		plex=`/usr/sbin/vxprint | grep rootvol | grep pl | awk '{print $2}'`
		plex=`echo ${plex}`
		for p in ${plex}; do
			dm=`/usr/sbin/vxprint | grep ${p} | grep sd | awk '{print $2}' | sed -e 's/-[A-Z0-9][0-9]//g' | uniq`
			rootdev=`/usr/sbin/vxprint | grep ${dm} | grep dm | awk '{print $3}'`
			do_cmd "${rootdev}"
		done
	else
		echo "${root}: Unrecognizable root device - not reserved"
		exit 1
	fi
fi

exit 0
