summaryrefslogtreecommitdiff
path: root/source/n/nfs-utils
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/nfs-utils')
-rwxr-xr-xsource/n/nfs-utils/nfs-utils.SlackBuild13
-rw-r--r--source/n/nfs-utils/rc.nfsd18
2 files changed, 14 insertions, 17 deletions
diff --git a/source/n/nfs-utils/nfs-utils.SlackBuild b/source/n/nfs-utils/nfs-utils.SlackBuild
index 336ffb29..53f05d7e 100755
--- a/source/n/nfs-utils/nfs-utils.SlackBuild
+++ b/source/n/nfs-utils/nfs-utils.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=nfs-utils
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -132,8 +132,15 @@ mkdir -p $PKG/sbin
mv $PKG/usr/sbin/rpc.statd $PKG/sbin
( cd $PKG/usr/sbin ; ln -sf ../../sbin/rpc.statd . )
-# Make recovery directory:
-mkdir -p $PKG/var/lib/nfs/v4recovery
+# Make recovery directory. The location expected may be found in
+# /proc/fs/nfsd/nfsv4recoverydir, so if that file exists we will get the
+# location from there. If not, we'll use the usual directory path.
+if [ -r /proc/fs/nfsd/nfsv4recoverydir ]; then
+ NFSV4RECOVERYDIR="$(cat /proc/fs/nfsd/nfsv4recoverydir)"
+else
+ NFSV4RECOVERYDIR="/var/lib/nfs/v4recovery"
+fi
+mkdir -p ${PKG}${NFSV4RECOVERYDIR}
# Chown /var/lib/nfs so that rpc.statd runs as rpc:rpc:
chown -R rpc:rpc $PKG/var/lib/nfs
diff --git a/source/n/nfs-utils/rc.nfsd b/source/n/nfs-utils/rc.nfsd
index 06c34b01..b73d8cc8 100644
--- a/source/n/nfs-utils/rc.nfsd
+++ b/source/n/nfs-utils/rc.nfsd
@@ -24,26 +24,16 @@ nfsd_start() {
exit # no uncommented shares in /etc/exports
fi
- # Without this directory the logs will complain with
- # 'NFSD: Unable to end grace period'.
- NFSV4RECOVERYDIR=$(cat /proc/fs/nfsd/nfsv4recoverydir)
- if [ -r /proc/fs/nfsd/nfsv4recoverydir -a ! -d "$NFSV4RECOVERYDIR" ]; then
- mkdir "$NFSV4RECOVERYDIR"
- chown -R rpc:rpc "$NFSV4RECOVERYDIR"
- fi
-
# If we do not detect nfsd support built into the kernel (or previously
# loaded as a module), we will try to load the nfsd.ko kernel module:
if [ ! -r /proc/1/net/rpc/nfsd ]; then
/sbin/modprobe nfsd
fi
- # For kernels newer than 2.4.x, use the new way of handling nfs client requests.
- if [ ! "$(/bin/uname -r | /bin/cut -f 1,2 -d .)" = "2.4" ]; then
- if grep -wq nfsd /proc/filesystems 2> /dev/null ; then
- if grep -vwq nfsd /proc/mounts 2> /dev/null ; then
- /sbin/mount -t nfsd nfsd /proc/fs/nfs 2> /dev/null
- fi
+ # Mount the nfsd filesystem:
+ if awk '$NF == "nfsd"' /proc/filesystems | grep -q . ; then
+ if ! awk '$3 == "nfsd" && $2 == "/proc/fs/nfs"' /proc/mounts | grep -q . ; then
+ /sbin/mount -t nfsd nfsd /proc/fs/nfs 2> /dev/null
fi
fi