Print this page
8890 ipfilter and nfs/server are locked in death race
@@ -30,42 +30,10 @@
. /lib/svc/share/smf_include.sh
. /lib/svc/share/ipf_include.sh
zone=`smf_zonename`
-#
-# Handling a corner case here. If we were in offline state due to an
-# unsatisfied dependency, the ipf_method process wouldn't have generated
-# the ipfilter configuration. When we transition to online because the
-# dependency is satisfied, the start method will have to generate the
-# ipfilter configuration. To avoid all possible deadlock scenarios,
-# we restart ipfilter which will regenerate the ipfilter configuration
-# for the entire system.
-#
-# The ipf_method process signals that it didn't generate ipf rules by
-# removing the service's ipf file. Thus we only restart network/ipfilter
-# when the file is missing.
-#
-configure_ipfilter()
-{
- ipfile=`fmri_to_file $SMF_FMRI $IPF_SUFFIX`
- ip6file=`fmri_to_file $SMF_FMRI $IPF6_SUFFIX`
- [ -f "$ipfile" -a -f "$ip6file" ] && return 0
-
- #
- # Nothing to do if:
- # - ipfilter isn't online
- # - global policy is 'custom'
- # - service's policy is 'use_global'
- #
- service_check_state $IPF_FMRI $SMF_ONLINE || return 0
- [ "`get_global_def_policy`" = "custom" ] && return 0
- [ "`get_policy $SMF_FMRI`" = "use_global" ] && return 0
-
- svcadm restart $IPF_FMRI
-}
-
case "$1" in
'start')
# The NFS server is not supported in a local zone
if smf_is_nonglobalzone; then
/usr/sbin/svcadm disable -t svc:/network/nfs/server
@@ -99,12 +67,10 @@
/usr/sbin/svcadm mark -t maintenance svc:/network/nfs/server
echo "$0: nfsd failed with $rc"
sleep 5 &
exit $SMF_EXIT_ERR_FATAL
fi
-
- configure_ipfilter
;;
'refresh')
/usr/sbin/sharemgr start -P nfs -a
;;