Print this page
NEX-15279 support NFS server in zone
NEX-15520 online NFS shares cause zoneadm halt to hang in nfs_export_zone_fini
Portions contributed by: Dan Kruchinin dan.kruchinin@nexenta.com
Portions contributed by: Stepan Zastupov stepan.zastupov@gmail.com
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Gordon Ross <gordon.ross@nexenta.com>
NEX-1704 Clustered NFSv4 could cause I/O errors on clients after failover
Reviewed by:  Evan Layton <evan.layton@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Alek Pinchuk <alek.pinchuk@nexenta.com>
NEX-4122 All kernel messages seem to come from 'genunix' instead of individual modules after illumos #5272
Reviewed by: Hans Rosenfeld <hans.rosenfeld@nexenta.com>
Reviewed by: Marcel Telka <marcel.telka@nexenta.com>
NEX-4036 Unable to enable the nfs/server service when nothing is shared
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
        
*** 20,31 ****
  # CDDL HEADER END
  #
  
  #
  # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
- # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
  #
  
  # Start/stop processes required for server NFS
  
  . /lib/svc/share/smf_include.sh
--- 20,31 ----
  # CDDL HEADER END
  #
  
  #
  # Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
  # Copyright 2016 Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
+ # Copyright 2018 Nexenta Systems, Inc.
  #
  
  # Start/stop processes required for server NFS
  
  . /lib/svc/share/smf_include.sh
*** 64,81 ****
          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
-                 echo "The NFS server is not supported in a local zone"
-                 sleep 5 &
-                 exit $SMF_EXIT_OK
-         fi
- 
          # Share all file systems enabled for sharing. sharemgr understands
          # regular shares and ZFS shares and will handle both. Technically,
          # the shares would have been started long before getting here since
          # nfsd has a dependency on them.
  
--- 64,73 ----
*** 91,101 ****
                  echo "$0: mountd failed with $rc"
                  sleep 5 &
                  exit $SMF_EXIT_ERR_FATAL
          fi
  
!         /usr/lib/nfs/nfsd
          rc=$?
          if [ $rc != 0 ]; then
                  /usr/sbin/svcadm mark -t maintenance svc:/network/nfs/server
                  echo "$0: nfsd failed with $rc"
                  sleep 5 &
--- 83,115 ----
                  echo "$0: mountd failed with $rc"
                  sleep 5 &
                  exit $SMF_EXIT_ERR_FATAL
          fi
  
!         NFS_OPTS=
!         if [ -f /opt/HAC/bin/rsf.sh ]; then
!                 . /opt/HAC/bin/rsf.sh
! 
!                 if [ -f "$PRODUCT_CONFIG" ]; then
!                         RSF_MNTS=$(/usr/bin/grep MOUNT_POINT "$PRODUCT_CONFIG" |\
!                             /usr/bin/sed -e 's/^.*MOUNT_POINT.*\"\(.*\)\"$/\1/')
! 
!                         for RSF_MNT in $RSF_MNTS; do
!                                 MATCH=$(/usr/bin/cat /etc/mnttab |\
!                                     /usr/bin/awk '{print $2}' |\
!                                     /usr/bin/egrep "^$RSF_MNT\$")
! 
!                                 if [ -n "$MATCH" ]; then
!                                         /usr/bin/mkdir -p "$RSF_MNT/.nfs"
!                                         /usr/bin/chown daemon:daemon "$RSF_MNT/.nfs"
!                                         NFS_OPTS="$NFS_OPTS -s $RSF_MNT/.nfs"
!                                 fi
!                         done
!                 fi
!         fi
! 
!         /usr/lib/nfs/nfsd $NFS_OPTS
          rc=$?
          if [ $rc != 0 ]; then
                  /usr/sbin/svcadm mark -t maintenance svc:/network/nfs/server
                  echo "$0: nfsd failed with $rc"
                  sleep 5 &