X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=etc%2Fnodist%2Fnfs-server;h=f1648842da6b6986dcc9517a1926cd9286ae6f67;hp=65495e9f0ad9096973dafef987aa3871b2d081a9;hb=43a26e8e4675e32d38a652f6f13e96d6b897cfab;hpb=f5334de87490a151d58c3fadea0410b7046d5fe3 diff --git a/etc/nodist/nfs-server b/etc/nodist/nfs-server index 65495e9..f164884 100755 --- a/etc/nodist/nfs-server +++ b/etc/nodist/nfs-server @@ -46,6 +46,10 @@ DESC="NFS kernel daemon" # Handle how we were called. case "$1" in start) + if [ -d /proc/fs/nfsd -a ! -f /proc/fs/nfsd/exports ] ; + then + /bin/mount -t nfsd nfsd /proc/fs/nfsd + fi echo -n "Exporting directories for $DESC..." $EXPORTFS -r echo "done." @@ -53,10 +57,25 @@ start) echo -n "Starting $NFSD: " startdaemon $PREFIX$NFSD $RPCNFSDCOUNT - if /usr/sbin/rpcinfo -u localhost nfs 3 &>/dev/null + # Disable NFSv3 on mountd if we don't have NFSv3 + 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= + fi + fi + rpcinfo -u localhost nfs 3 &>/dev/null + if [ "$?" != "0" ] then RPCMOUNTDOPTS="$RPCMOUNTDOPTS --no-nfs-version 3" fi + if [ -n "$ClearAddr" ]; then + echo nfsd 127.0.0.1 1 > /proc/net/rpc/auth.unix.ip/channel + fi + echo -n "Starting $MOUNTD: " startdaemon $MOUNTD $RPCMOUNTDOPTS @@ -82,12 +101,14 @@ stop) echo "Unexporting directories for $DESC..." $EXPORTFS -au + if [ -f /proc/fs/nfsd/exports ] ; then /bin/umount -t nfsd nfsd /proc/fs/nfsd ; fi rm -f /var/lock/subsys/$SCRIPT_NAME echo "done." ;; restart) $0 stop + sleep 1 $0 start ;;