summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorneilbrown <neilbrown>2004-08-31 06:21:31 +0000
committerneilbrown <neilbrown>2004-08-31 06:21:31 +0000
commit43a26e8e4675e32d38a652f6f13e96d6b897cfab (patch)
treeb66d7ed38964408351e94f6a44005ff25f54337f
parent74ca5e89cdd02a583861a4c353bcac4f712878a3 (diff)
downloadnfs-utils-43a26e8e4675e32d38a652f6f13e96d6b897cfab.tar.gz
nfs-utils-43a26e8e4675e32d38a652f6f13e96d6b897cfab.tar.xz
nfs-utils-43a26e8e4675e32d38a652f6f13e96d6b897cfab.zip
mount nfsd filesystem at startup, and unmount afterwards
-rw-r--r--ChangeLog9
-rwxr-xr-xdebian/nfs-kernel-server.init6
-rwxr-xr-xetc/nodist/nfs-server6
-rw-r--r--etc/redhat/nfs3
-rwxr-xr-xetc/redhat/nfs.init7
5 files changed, 31 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f7ec2da..0ebb3d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-08-31 NeilBrown <neilb@cse.unsw.edu.au>
+
+ * debian/nfs-kernel-server.init(start,stop) mount the nfsd
+ filesystem, if available, before starting nfs services, and
+ unmount it afterwards.
+ * etc/nodist/nfs-server: ditto
+ * etc/redhat/nfs.init: likewise
+ * etc/redhat/nfs: add "MOUNT_NFSD" flag to control above.
+
2004-06-08 NeilBrown <neilb@cse.unsw.edu.au>
* utils/exportfs/exportfs.c: Don't rmtab_read if new_cache, it
diff --git a/debian/nfs-kernel-server.init b/debian/nfs-kernel-server.init
index 0894f20..e800267 100755
--- a/debian/nfs-kernel-server.init
+++ b/debian/nfs-kernel-server.init
@@ -35,6 +35,11 @@ case "$1" in
cd / # daemons should have root dir as cwd
if grep -q '^/' /etc/exports
then
+ # Having the 'nfsd' filesystem mounted (if available)
+ # make client authentication more reliable.
+ if [ -d /proc/fs/nfsd -a ! -f /proc/fs/nfsd/exports ]
+ then mount -t nfsd nfsd /proc/fs/nfsd
+ fi
printf "Exporting directories for $DESC..."
$PREFIX/sbin/exportfs -r
echo "done."
@@ -80,6 +85,7 @@ case "$1" in
printf "Unexporting directories for $DESC..."
$PREFIX/sbin/exportfs -au
+ if [ -f /proc/fs/nfsd/exports ] ; then umount /proc/fs/nfsd; fi
echo "done."
;;
diff --git a/etc/nodist/nfs-server b/etc/nodist/nfs-server
index 8f1d34b..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."
@@ -97,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
;;
diff --git a/etc/redhat/nfs b/etc/redhat/nfs
index 5e21f1f..2ace4cd 100644
--- a/etc/redhat/nfs
+++ b/etc/redhat/nfs
@@ -29,3 +29,6 @@
# TUNE_QUEUE to yes will set the values to 256kb.
# TUNE_QUEUE="yes"
# NFS_QS=262144
+
+# Mount /proc/fs/nfsd (2.6 kernel only)
+MOUNT_NFSD="yes"
diff --git a/etc/redhat/nfs.init b/etc/redhat/nfs.init
index ac45937..1ac4213 100755
--- a/etc/redhat/nfs.init
+++ b/etc/redhat/nfs.init
@@ -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
@@ -144,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)