]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - debian/nfs-common.init
Simplify handling of idmapd, which in recent releases is always enabled
[nfs-utils.git] / debian / nfs-common.init
index 4076e31c66ecdc98aefe2d10807f76440e6f6304..25ff4f757c7314544a122eb1c0e06638dc19f863 100644 (file)
@@ -17,11 +17,9 @@ DESC="NFS common utilities"
 
 # Read config
 DEFAULTFILE=/etc/default/nfs-common
-PREFIX=
 NEED_STATD=
-NEED_IDMAPD=
 NEED_GSSD=
-PIPEFS_MOUNTPOINT=/var/lib/nfs/rpc_pipefs
+PIPEFS_MOUNTPOINT=/run/rpc_pipefs
 RPCGSSDOPTS=
 if [ -f $DEFAULTFILE ]; then
     . $DEFAULTFILE
@@ -30,14 +28,13 @@ fi
 . /lib/lsb/init-functions
 
 # Exit if required binaries are missing.
-[ -x $PREFIX/sbin/rpc.statd ] || exit 0
+[ -x /sbin/rpc.statd ] || exit 0
 
 #
-# Parse the fstab file, and determine whether we need idmapd and gssd. (The
+# Parse the fstab file, and determine whether we need gssd. (The
 # /etc/defaults settings, if any, will override our autodetection.) This code
 # is partially adapted from the mountnfs.sh script in the sysvinit package.
 #
-AUTO_NEED_IDMAPD=no
 AUTO_NEED_GSSD=no
 
 if [ -f /etc/fstab ]; then
@@ -50,10 +47,6 @@ if [ -f /etc/fstab ]; then
                continue
                ;;
        esac
-       # FSTYPE "nfs" can be NFSv4 now
-        #if [ "$FSTYPE" = "nfs4" ]; then
-            AUTO_NEED_IDMAPD=yes
-        #fi
         case "$OPTS" in
 
             sec=krb5|*,sec=krb5|sec=krb5,*|*,sec=krb5i,*|sec=krb5i|*,sec=krb5i|sec=krb5i,*|*,sec=krb5i,*|sec=krb5p|*,sec=krb5p|sec=krb5p,*|*,sec=krb5p,*)
@@ -65,19 +58,6 @@ if [ -f /etc/fstab ]; then
     exec 0<&9 9<&-
 fi
 
-#
-# We also need idmapd if we run an NFSv4 server. It's fairly difficult
-# to autodetect whether there are NFSv4 exports or not, and idmapd is not a
-# particularily heavy daemon, so we auto-enable it if we find an /etc/exports
-# file. This does not mean that there are NFSv4 or other mounts active (or
-# even that nfs-kernel-server is installed), but it matches what the "start"
-# condition in nfs-kernel-server's init script does, which has a value in
-# itself.
-#
-if [ -f /etc/exports ] && grep -q '^[[:space:]]*[^#]*/' /etc/exports; then
-    AUTO_NEED_IDMAPD=yes
-fi
-
 case "$NEED_STATD" in
     yes|no)
         ;;
@@ -90,7 +70,7 @@ case "$NEED_IDMAPD" in
     yes|no)    
         ;;
     *)
-        NEED_IDMAPD=$AUTO_NEED_IDMAPD
+        NEED_IDMAPD=yes
        ;;
 esac
 
@@ -150,7 +130,7 @@ case "$1" in
            fi
            start-stop-daemon --start --oknodo --quiet \
                --pidfile /var/run/rpc.statd.pid \
-               --exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
+               --exec /sbin/rpc.statd -- $STATDOPTS
            RET=$?
            if [ $RET != 0 ]; then
                log_end_msg $RET
@@ -173,6 +153,7 @@ case "$1" in
            do_modprobe sunrpc
            do_modprobe nfs
            do_modprobe nfsd
+           mkdir -p "$PIPEFS_MOUNTPOINT"
            if do_mount rpc_pipefs $PIPEFS_MOUNTPOINT
            then
                if [ "$NEED_IDMAPD" = yes ]