]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - etc/redhat/nfs.init
fix fd bug
[nfs-utils.git] / etc / redhat / nfs.init
index e1526264826332963f3bba395206ad41b06f62eb..1ac42136092028f43a6fe3adc9e8ca70ff639452 100755 (executable)
@@ -50,9 +50,13 @@ if [ "$TUNE_QUEUE" = "yes" ]; then
     [ -z "$NFS_QS" ] && NFS_QS=262144
 fi
 
+
 # See how we were called.
 case "$1" in
   start)
+       if [ -d /proc/fs/nfsd -a "$MOUNT_NFSD" = "yes" ] ; then
+           /bin/mount -t nfsd nfsd /proc/fs/nfsd
+       fi
        # Start daemons.
        # Apply input queue increase for nfs server
        if [ "$TUNE_QUEUE" = "yes" ]; then
@@ -77,10 +81,22 @@ case "$1" in
        case $MOUNTD_NFS_V2 in
        auto|AUTO)
            # Let's see if we support NFS version 2.
+           ClearAddr=
+           if [ -f /proc/net/rpc/auth.unix.ip/channel ] ; then
+              if   grep -s 127.0.0.1 /proc/net/rpc/auth.unix.ip/content > /dev/null ; then
+                   : address already known
+              else
+                    echo nfsd 127.0.0.1 2147483647 localhost > /proc/net/rpc/auth.unix.ip/channel
+                   ClearAddr=yes
+             fi
+           fi
            /usr/sbin/rpcinfo -u localhost nfs 2 &>/dev/null
            if [ $? -ne 0 ]; then
                MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 2"
            fi
+           if [ -n "$ClearAddr" ]; then
+                  echo nfsd 127.0.0.1 1  > /proc/net/rpc/auth.unix.ip/channel
+           fi
            ;;
        no|NO)
            MOUNTD_OPTIONS="$MOUNTD_OPTIONS --no-nfs-version 2"
@@ -132,6 +148,9 @@ case "$1" in
        # Do it the last so that clients can still access the server
        # when the server is running.
        action "Shutting down NFS services: " /usr/sbin/exportfs -au
+       if [ -d /proc/fs/nfsd -a "$MOUNT_NFSD" = "yes" ] ; then
+               /bin/umount /proc/fs/nfsd
+       fi
        rm -f /var/lock/subsys/nfs
        ;;
   status)