#!/bin/sh
# $Id: qfs_prepatch,v 1.4 2002/12/03 16:38:51 hm129959 Exp $

#
# Verify LSCqfs is not installed
#
pkginfo LSCqfs  >/dev/null 2>&1  &&  {
	echo "                                                            "
	echo "FATAL:  LSCqfs is already installed on this system.         "
	echo "                                                            "
	echo "        QFS is already part of SUNWsamfs and is controlled  "
	echo "        by appropriate license keys.                        "
	echo "                                                            "
	echo "        To install the SUNWsamfs package, you must first    "
	echo "        remove LSCqfs. You will need a new license.         "
	echo "                                                            "
	exit 1
}

#
# Verify LSCsamfs is not installed
#
pkginfo LSCsamfs  >/dev/null 2>&1  &&  {
	echo "                                                            "
	echo "FATAL:  LSCsamfs is already installed on this system.       "
	echo "                                                            "
	echo "        To install the SUNWsamfs package, you must first    "
	echo "        remove LSCsamfs. You will need a new license.       "
	echo "                                                            "
	exit 1
}

#       Check for mounted samfs file systems.

/usr/sbin/mount -p | /usr/bin/awk '{print $4}' | /usr/bin/grep samfs > /dev/null
if [ $? = 0 ]; then
        echo " "
        echo "--> Before adding this patch, you must unmount each"
        echo "--> QFS filesystem."
        echo " "
        exit 1
fi

/usr/sbin/rem_drv samst
/usr/sbin/rem_drv samrd
echo " "

STAT=0


sed "/sf:23:respawn/d" /etc/inittab > /etc/inittab.tmp
if [ $? = 0 ]; then
        mv /etc/inittab.tmp /etc/inittab
        chmod 644 /etc/inittab
fi

chmod -x /usr/lib/fs/samfs/sam-fsd
FSDPID=`/bin/ps -e | /usr/bin/grep sam-fsd | /usr/bin/grep -v grep | /usr/bin/cut -c1-6`
if [ -n "$FSDPID" ]; then
	kill -TERM $FSDPID
fi

#
#       The samsys module is automatically unloaded when samfs unloads.
#
for SAMTYPE in samst samrd samfs
do
        modid=`/usr/sbin/modinfo | /usr/bin/grep $SAMTYPE | head -1 | cut -c0-4`
        if [ "$modid" -ne "" ] ; then
                echo "... unloading $SAMTYPE - module $modid"
                /usr/sbin/modunload -i $modid  ||  {
                sleep 2
                        echo "... unloading $SAMTYPE - module $modid (2nd attempt)"
                        /usr/sbin/modunload -i $modid  ||  {
                                sleep 2
                                echo "... unloading $SAMTYPE - module $modid (3rd attempt)"
                                /usr/sbin/modunload -i $modid  ||  {
                                        echo "    module $modid - $SAMTYPE"
                                        echo " "
                                        STAT=1
                                }
                        }
                }
        fi
done
echo " "

if [ "$STAT" != 0 ] ; then
    echo "--> Before patching this package, you must unmount each"
	echo "--> QFS filesystem."
    echo " "
    exit 1
fi

exit 0
