diff options
Diffstat (limited to 'source/n/nfs-utils')
-rwxr-xr-x | source/n/nfs-utils/nfs-utils.SlackBuild | 13 | ||||
-rw-r--r-- | source/n/nfs-utils/rc.nfsd | 18 |
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 |