064ed339d53d38ca3b43105dc6fc88512efed351jjj#!/sbin/sh
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# CDDL HEADER START
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# The contents of this file are subject to the terms of the
064ed339d53d38ca3b43105dc6fc88512efed351jjj# Common Development and Distribution License (the "License").
064ed339d53d38ca3b43105dc6fc88512efed351jjj# You may not use this file except in compliance with the License.
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
064ed339d53d38ca3b43105dc6fc88512efed351jjj# or http://www.opensolaris.org/os/licensing.
064ed339d53d38ca3b43105dc6fc88512efed351jjj# See the License for the specific language governing permissions
064ed339d53d38ca3b43105dc6fc88512efed351jjj# and limitations under the License.
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# When distributing Covered Code, include this CDDL HEADER in each
064ed339d53d38ca3b43105dc6fc88512efed351jjj# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
064ed339d53d38ca3b43105dc6fc88512efed351jjj# If applicable, add the following below this CDDL HEADER, with the
064ed339d53d38ca3b43105dc6fc88512efed351jjj# fields enclosed by brackets "[]" replaced with your own identifying
064ed339d53d38ca3b43105dc6fc88512efed351jjj# information: Portions Copyright [yyyy] [name of copyright owner]
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# CDDL HEADER END
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie# Copyright (c) 2015 by Delphix. All rights reserved.
064ed339d53d38ca3b43105dc6fc88512efed351jjj# Use is subject to license terms.
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj# Start the lockd service; we are serving NFS and we need to verify
064ed339d53d38ca3b43105dc6fc88512efed351jjj# that rpcbind is accepting traffic from the network.
064ed339d53d38ca3b43105dc6fc88512efed351jjj#
064ed339d53d38ca3b43105dc6fc88512efed351jjj
064ed339d53d38ca3b43105dc6fc88512efed351jjjBIND_FMRI=svc:/network/rpc/bind
064ed339d53d38ca3b43105dc6fc88512efed351jjjdo_change=false
064ed339d53d38ca3b43105dc6fc88512efed351jjjif set -- `svcprop -t -p config/local_only $BIND_FMRI`; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj if [ "$2" != boolean ]; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj echo "$0: config/local_only property for $BIND_FMRI has wrong "\
064ed339d53d38ca3b43105dc6fc88512efed351jjj "type" 1>&2
064ed339d53d38ca3b43105dc6fc88512efed351jjj elif [ "$#" -ne 3 ]; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj echo "$0: config/local_only property for $BIND_FMRI has wrong "\
064ed339d53d38ca3b43105dc6fc88512efed351jjj "number of values" 1>&2
064ed339d53d38ca3b43105dc6fc88512efed351jjj elif [ "$3" = true ]; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj do_change=true
064ed339d53d38ca3b43105dc6fc88512efed351jjj fi
064ed339d53d38ca3b43105dc6fc88512efed351jjjelse
064ed339d53d38ca3b43105dc6fc88512efed351jjj # If the property is not found, we just set it.
064ed339d53d38ca3b43105dc6fc88512efed351jjj do_change=true
064ed339d53d38ca3b43105dc6fc88512efed351jjjfi
064ed339d53d38ca3b43105dc6fc88512efed351jjj
064ed339d53d38ca3b43105dc6fc88512efed351jjjif $do_change
064ed339d53d38ca3b43105dc6fc88512efed351jjjthen
064ed339d53d38ca3b43105dc6fc88512efed351jjj # These will generate errors in the log.
064ed339d53d38ca3b43105dc6fc88512efed351jjj svccfg -s $BIND_FMRI setprop config/local_only = boolean: false
064ed339d53d38ca3b43105dc6fc88512efed351jjj if [ $? != 0 ]; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj echo "$0: WARNING setprop failed" 1>&2
064ed339d53d38ca3b43105dc6fc88512efed351jjj fi
064ed339d53d38ca3b43105dc6fc88512efed351jjj
064ed339d53d38ca3b43105dc6fc88512efed351jjj svcadm refresh $BIND_FMRI
064ed339d53d38ca3b43105dc6fc88512efed351jjj if [ $? != 0 ]; then
064ed339d53d38ca3b43105dc6fc88512efed351jjj echo "$0: WARNING svcadm refresh failed" 1>&2
064ed339d53d38ca3b43105dc6fc88512efed351jjj fi
064ed339d53d38ca3b43105dc6fc88512efed351jjjfi
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie#
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie# We have to wait for statd to finish starting up before lockd can
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie# start running. If statd hangs after service startup (so SMF thinks
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie# it's done) but before it registers an rpc address, we can end up
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie# failing in the kernel when we attempt to contact it.
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie#
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelieuntil /usr/bin/rpcinfo -T tcp 127.0.0.1 status >/dev/null 2>&1
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagneliedo
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie sleep 1
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagneliedone
7b4e6d92ac8978742d2afae42fe91917af8b8938Paul Dagnelie
064ed339d53d38ca3b43105dc6fc88512efed351jjjexec /usr/lib/nfs/lockd