i.scsivhciconf revision cdf0c1d55d9b3b6beaf994835440dfb01aef5cf0
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#!/bin/sh
11e9368a226272085c337e9e74b79808c16fbdbaTinderbox User#
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# CDDL HEADER START
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# CDDL HEADER END
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# ident "%Z%%M% %I% %E% SMI"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User# Use is subject to license terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPATH=/usr/bin:/usr/sbin:$PATH; export PATH
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox UserPREFIX=/tmp/scsi_vhci.$$
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinFPCONF=kernel/drv/fp.conf
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Add any new entries to be added to fp.conf to this file. The class action
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# script for fp.conf will append the entries of this file to fp.conf.
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews#
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark AndrewsNEW_FPCONF_ENTRIES=/tmp/fp.conf.new_entries
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Check if mpxio is enabled or disabled in the given scsi_vhci.conf file
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# $1 scsi_vhci.conf file
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Returns 0 if disabled, 1 if enabled, 2 if can't determine.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntis_mpxio_enabled()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if egrep "^[ ]*mpxio-disable[ ]*=[ ]*\"yes\"[ ]*;" \
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User $1 > /dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return 0
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if egrep "^[ ]*mpxio-disable[ ]*=[ ]*\"no\"[ ]*;" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $1 > /dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return 1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return 2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Make sed script to do most of the work of upgrading scsi_vhci.conf.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox Usermake_sed_script()
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User{
f9ce6280cec79deb16ff6d9807aa493ff23e10d9Tinderbox User #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # remove mpxio-disable and forceattach properties.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # forceattach is no longer necessary as the framework always loads
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # scsi_vhci early during boot.
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User #
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User cat > $SEDSCRIPT << EOF
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User/^# mpxio Global enable\/disable configuration$/d
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User/^# possible values are mpxio-disable="no" or mpxio-disable="yes"$/d
46472a450e043434d78fa18edc73bca8c47f3981Tinderbox User/^# mpxio global enable\/disable switch: setting mpxio-disable="no" will activate$/d
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^# I\/O multipathing; setting mpxio-disable="yes" disables this feature (do$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User/^# not remove this property).$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User/^[ ]*mpxio-disable[ ]*=/d
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^# Force load driver to support hotplug activity (do not remove this property).$/d
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^ddi-forceattach=1;$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserEOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # convert old 'scsi-options' oriented device-type-scsi-options-list to
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # new 'name' oriented scsi-vhci-failover-override
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cat > $SEDSCRIPT << EOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^# For enabling MPxIO support for 3rd party symmetric device need an$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User/^# entry similar to following in this file. Just replace the "SUN SENA"$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User/^# part with the Vendor ID\/Product ID for the device, exactly as reported by$/d
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^# Inquiry cmd.$/d
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt/^# device-type-scsi-options-list =$/d
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User/^# "SUN SENA", "symmetric-option";$/d
df3d1c56e488c98f2b10e8fcb35a07a797c66ed7Tinderbox User/^# symmetric-option = 0x1000000;$/d
df3d1c56e488c98f2b10e8fcb35a07a797c66ed7Tinderbox Users/device-type-scsi-options-list/scsi-vhci-failover-override/
df3d1c56e488c98f2b10e8fcb35a07a797c66ed7Tinderbox UserEOF
df3d1c56e488c98f2b10e8fcb35a07a797c66ed7Tinderbox User # old 'symetric' scsi-options property of 1000000 -> f_sym name
df3d1c56e488c98f2b10e8fcb35a07a797c66ed7Tinderbox User SYMMETRIC_OPTION=`grep -v '^#' $2 | grep 1000000 | \
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User awk -F= '{print $1}'|awk '{print $1}'`
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User if [ "$SYMMETRIC_OPTION"x != "x" ]; then
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User echo "/^[ ]*$SYMMETRIC_OPTION/d" >> $SEDSCRIPT
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User echo "s/$SYMMETRIC_OPTION/f_sym/" >> $SEDSCRIPT
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User fi
dec590a3deb8e87380a8bd3a77d535dba3729bf6Tinderbox User
c42708dcc8ca18a41152251654d29f0cdd5b9533Tinderbox User # old 'disable' scsi-options property of 7000000 -> NONE name
2ba8603ca962450068fe45f04c5caf8219b0d5f1Tinderbox User DISABLE_OPTION=`grep -v '^#' $2 | grep 7000000 | \
2ba8603ca962450068fe45f04c5caf8219b0d5f1Tinderbox User awk -F= '{print $1}'|awk '{print $1}'`
2ba8603ca962450068fe45f04c5caf8219b0d5f1Tinderbox User if [ "$DISABLE_OPTION"x != "x" ]; then
2ba8603ca962450068fe45f04c5caf8219b0d5f1Tinderbox User echo "/^[ ]*$DISABLE_OPTION/d" >> $SEDSCRIPT
2ba8603ca962450068fe45f04c5caf8219b0d5f1Tinderbox User echo "s/$DISABLE_OPTION/NONE/" >> $SEDSCRIPT
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Make FAILOVER_MODULE_BLOCK file
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usermake_fmbfile()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # Form file with new scsi_vhci FAILOVER_MODULE_BLOCK information
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cat > $FMBFILE << EOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#BEGIN: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Declare scsi_vhci failover module paths with 'ddi-forceload' so that
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# they get loaded early enough to be available for scsi_vhci root use.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# NOTE: Correct operation depends on the value of 'ddi-forceload', this
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# value should not be changed. The ordering of entries is from
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# most-specific failover modules (with a "probe" implementation that is
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# completely VID/PID table based), to most generic (failover modules that
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# are based on T10 standards like TPGS). By convention the last part of a
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# failover module path, after "/scsi_vhci_", is called the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "failover-module-name", which begins with "f_" (like "f_asym_sun"). The
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# "failover-module-name" is also used in the override mechanism below.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntddi-forceload =
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "misc/scsi_vhci/scsi_vhci_f_asym_sun",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "misc/scsi_vhci/scsi_vhci_f_asym_lsi",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "misc/scsi_vhci/scsi_vhci_f_asym_emc",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "misc/scsi_vhci/scsi_vhci_f_sym_emc",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "misc/scsi_vhci/scsi_vhci_f_sym_hds",
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User "misc/scsi_vhci/scsi_vhci_f_sym",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "misc/scsi_vhci/scsi_vhci_f_tpgs_tape",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "misc/scsi_vhci/scsi_vhci_f_tape",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt "misc/scsi_vhci/scsi_vhci_f_tpgs";
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# For a device that has a GUID, discovered on a pHCI with mpxio enabled, vHCI
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# access also depends on one of the scsi_vhci failover modules accepting the
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# device. The default way this occurs is by a failover module's "probe"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# implementation (sfo_device_probe) indicating the device is supported under
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# scsi_vhci. To override this default probe-oriented configuration in
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# order to
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# 1) establish support for a device not currently accepted under scsi_vhci
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# or 2) override the module selected by "probe"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# or 3) disable scsi_vhci support for a device
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# you can add a 'scsi-vhci-failover-override' tuple, as documented in
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# scsi_get_device_type_string(9F). For each tuple, the first part provides
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# basic device identity information (vid/pid) and the second part selects
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# the failover module by "failover-module-name". If you want to disable
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# scsi_vhci support for a device, use the special failover-module-name "NONE".
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Currently, for each failover-module-name in 'scsi-vhci-failover-override'
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# (except "NONE") there needs to be a
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "misc/scsi_vhci/scsi_vhci_<failover-module-name>" in 'ddi-forceload' above.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# " 111111"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "012345670123456789012345", "failover-module-name" or "NONE"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "|-VID--||-----PID------|",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# scsi-vhci-failover-override =
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "STK FLEXLINE 400", "f_asym_lsi",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "SUN T4", "f_tpgs",
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# "CME XIRTEMMYS", "NONE";
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#END: FAILOVER_MODULE_BLOCK (DO NOT MOVE OR DELETE)
14a656f94b1fd0ababd84a772228dfa52276ba15Evan HuntEOF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Upgrade the destination scsi_vhci.conf file.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $1 source scsi_vhci.conf file
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $2 destination scsi_vhci.conf file (the file to be upgraded)
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Returns 0 on success, non zero on failure.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntupdate_scsi_vhci()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt TMPSCSIVHCI=$PREFIX.conf
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt SEDSCRIPT=$PREFIX.sed
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt FMBFILE=$PREFIX.fb
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # make sed script to do most of the work of upgrading
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User make_sed_script $1 $2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -f $SEDSCRIPT $2 > $TMPSCSIVHCI 2>/dev/null
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt retval=$?
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $retval -eq 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cp $TMPSCSIVHCI $2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt grep "FAILOVER_MODULE_BLOCK" $2 >/dev/null 2>&1
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $? -ne 0 ]; then
58d970a2b48b9186ca79b1506c0c736dd7b5daebTinderbox User make_fmbfile
4206bb139c83dae2a8b59b7782031ccd40439aaaTinderbox User cat $FMBFILE >> $2
7e5658b04f825bc8defa83d35864ef6a0cbb5262Tinderbox User fi
58d970a2b48b9186ca79b1506c0c736dd7b5daebTinderbox User fi
58d970a2b48b9186ca79b1506c0c736dd7b5daebTinderbox User
4206bb139c83dae2a8b59b7782031ccd40439aaaTinderbox User rm -f $SEDSCRIPT $TMPSCSIVHCI $FMBFILE
4206bb139c83dae2a8b59b7782031ccd40439aaaTinderbox User return $retval
4206bb139c83dae2a8b59b7782031ccd40439aaaTinderbox User}
7e5658b04f825bc8defa83d35864ef6a0cbb5262Tinderbox User
58d970a2b48b9186ca79b1506c0c736dd7b5daebTinderbox User#
1609eab3caf63287d1caa0d3f8b4819a0c2becffTinderbox User# Preprocess a driver.conf file. The output is written to out file.
1609eab3caf63287d1caa0d3f8b4819a0c2becffTinderbox User# $1 driver.conf file
1609eab3caf63287d1caa0d3f8b4819a0c2becffTinderbox User# $2 out file
1609eab3caf63287d1caa0d3f8b4819a0c2becffTinderbox User#
1609eab3caf63287d1caa0d3f8b4819a0c2becffTinderbox Userpreprocess()
ba38c6b4bcc2c1cff3d281225c497f1d5884a2b2Tinderbox User{
ba38c6b4bcc2c1cff3d281225c497f1d5884a2b2Tinderbox User TMPPREPROCESS=$PREFIX.preprocess
ba38c6b4bcc2c1cff3d281225c497f1d5884a2b2Tinderbox User
ba38c6b4bcc2c1cff3d281225c497f1d5884a2b2Tinderbox User # strip comments, blank lines, leading and trailing spaces
ba38c6b4bcc2c1cff3d281225c497f1d5884a2b2Tinderbox User sed -e "/^[ ]*#/d" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "/^[ ]*$/d" \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -e "s/^[ ]*//" \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -e "s/[ ]*$//" $1 > $TMPPREPROCESS
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # combine entries that spawn more than one line
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User sed -e "/;$/p" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "/;$/d" \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -e ":rdnext" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "N" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "s/\n/ /" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "/;$/p" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "/;$/d" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "b rdnext" $TMPPREPROCESS > $2
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $TMPPREPROCESS
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Disable mpxio on all fp ports.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $1 fp.conf file
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Returns 0 on success, non zero on failure.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdisable_mpxio_globally()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt TMPFP1=$PREFIX.fp1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt TMPFP2=$PREFIX.fp2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ ! -f $1 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt echo "mpxio-disable=\"yes\";" > $NEW_FPCONF_ENTRIES
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User return 0
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # change all occurrences of mpxio-disable (including per port) value
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # from "no" to "yes" except in comments.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -e "/^[ ]*#/p" -e "/^[ ]*#/d" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt -e "s/mpxio-disable[ ]*=[ ]*\"no\"/mpxio-disable=\"yes\"/g"\
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User $1 > $TMPFP1 2>/dev/null
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt retval=$?
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $retval -eq 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt preprocess $TMPFP1 $TMPFP2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # add global mpxio-disable if not already present
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt egrep "^mpxio-disable[ ]*=[ ]*\"yes\"[ ]*;" \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt $TMPFP2 >/dev/null 2>&1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $? -ne 0 ]; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User echo "mpxio-disable=\"yes\";" > $NEW_FPCONF_ENTRIES
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt cp $TMPFP1 $1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $TMPFP2
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User rm -f $TMPFP1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return $retval
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Check if mpxio-disable entry is present in fp.conf file for the specified
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# controller and port.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# $1 fp.conf file
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $2 controller name
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $3 port number
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Returns 1 if the entry is present, 0 if not.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Usercheck_mpxio()
9d557856c2a19ec95ee73245f60a92f8675cf5baTinderbox User{
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt TMPFILE=$PREFIX.check
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt preprocess $1 $TMPFILE
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if egrep "parent[ ]*=[ ]*\"$2\"" $TMPFILE \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User 2>/dev/null | egrep "port[ ]*=[ ]*$3" 2>/dev/null | \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt egrep "mpxio-disable[ ]*=[ ]*\".*\"" >/dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $TMPFILE
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return 1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $TMPFILE
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User return 0
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Reads vfstab entry fields corresponding to the specified mount point.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# This function assumes that stdin is already set to vfstab.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $1 mount point
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntreadvfstab()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User while read special fsckdev mountp fstype fsckpass automnt mntopts; do
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt case "$special" in
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User '#'* | '') # Ignore comments, empty lines
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User continue ;;
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User '-') # Ignore no-action lines
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt continue
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt esac
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt [ "x$mountp" = "x$1" ] && break
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt done
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# Disable mpxio on the specified controller if the controller had mpxio
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# disabled (implicitly) before the upgrade.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $1 directory on which the root filesystem of the OS image being
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# upgraded is mounted.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $2 /dev link or /devices name of the root slice whose controller needs
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# to have mpxio disabled.
e2b184f84e846bbcb764b6f0aef5dcd583d3d7a1Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdisable_mpxio()
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if echo "$2" | grep "/devices/" >/dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt physpath=`echo "$2" | sed "s/^.*\/devices\//\//" 2>/dev/null`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt elif echo "$2" | grep "/dev/" >/dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # it is /dev link
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt physpath=`ls -l $1/$2 | sed "s/^.*\/devices\//\//" 2>/dev/null`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt else
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt return
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if echo "$physpath" | grep "/fp@" >/dev/null 2>&1; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # extract controller and port number
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt controller=`echo "$physpath" | sed "s/\/fp@.*$//" 2>/dev/null`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User port=`echo "$physpath" | sed -e "s/^.*\/fp@//" 2>/dev/null \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User -e "s/,0\/.*$//" 2>/dev/null`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # add an entry to fp.conf to disable mpxio only if not already
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # present.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt check_mpxio $1/$FPCONF $controller $port
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $? -eq 0 ]; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User echo "name=\"fp\" parent=\"$controller\" port=$port \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntmpxio-disable=\"yes\";" >> $NEW_FPCONF_ENTRIES
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Disable mpxio on the root controller if it was implicitly disabled before
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# the upgrade.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# Note that s8 and s9 didn't have mpxio support on the root controller.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# So root controller always had mpxio disabled. But Network Storage supplies a
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# patch to enable mpxio on the root controller.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt# $1 directory on which the root filesystem of the OS image being
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User# upgraded is mounted.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User#
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntdisable_mpxio_on_root()
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt{
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User rel=`uname -r | cut -f 2 -d .`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $rel -lt 10 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # live upgrade
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt root=/
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User else
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User root=$1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # if the root is a metadevice disable mpxio on each of the component
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # controllers if the component controller had mpxio disabled before.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if mount | grep "^$root on /dev/md/dsk/" >/dev/null 2>&1; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User metadev=`mount | grep "^$root on /dev/md/dsk/" | \
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cut -f3 -d " " | cut -f5 -d "/"`
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt devlist=`metastat -p $metadev | grep " 1 1 " | \
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt sed -e "s/^.* 1 1 //" | cut -f1 -d " "`
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ "x$devlist" = x ]; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User return
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt for d in $devlist
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt do
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User disable_mpxio $1 /dev/dsk/$d
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox User done
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox User else
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox User exec < ${root}/etc/vfstab; readvfstab "/"
0226754d9e537fd56b690d5890cfe215a6c59f89Tinderbox User disable_mpxio $1 $special
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt}
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userif read src dest; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # first delete if a stale version of this file exists
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt rm -f $NEW_FPCONF_ENTRIES
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ ! -f $dest ]; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User cp $src $dest
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # If we are upgrading from s7 or s8, scsi_vhci.conf file
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # won't exist and mpxio needs to be globally disabled.
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User #
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User # XXX Install doesn't provide a way to distinguish between
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # fresh install and upgrade. In this hack we assume that if
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # the system's vfstab already contains an entry for the root
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt # it must be an upgrade.
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt #
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ -s $PKG_INSTALL_ROOT/etc/vfstab ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt exec < $PKG_INSTALL_ROOT/etc/vfstab; readvfstab "/"
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ "x$mountp" = x/ ]; then
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User disable_mpxio_globally $PKG_INSTALL_ROOT/$FPCONF
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $? -ne 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt exit 1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt exit 0
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt is_mpxio_enabled $dest
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt mpxio_on=$?
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User update_scsi_vhci $src $dest
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $? -ne 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt exit 1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User if [ $mpxio_on -eq 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt disable_mpxio_globally $PKG_INSTALL_ROOT/$FPCONF
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ $? -ne 0 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt exit 1
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt elif [ $mpxio_on -eq 1 ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt if [ "x$PKG_INSTALL_ROOT" != x ]; then
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt disable_mpxio_on_root $PKG_INSTALL_ROOT
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt else
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt disable_mpxio_on_root /
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt fi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox Userfi
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Huntexit 0
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt