openrc/init.d/netmount.in
William Hubbs a0fe1c5a60 netmount: do not handle NFS mounts
Since nfs and nfs4 file systems require extra daemons to be running on
the client to function properly, netmount should not try to handle these
file systems.

Reported-by: <devurandom@gmx.net>
X-Gentoo-Bug: 427996
X-Gentoo-Bug-URL: http://bugs.gentoo.org/show_bug.cgi?id=427996
2012-09-15 12:08:09 -05:00

86 lines
1.6 KiB
Plaintext

#!@PREFIX@/sbin/runscript
# Copyright (c) 2007-2009 Roy Marples <roy@marples.name>
# Released under the 2-clause BSD license.
description="Mounts network shares, other than NFS, according to /etc/fstab."
# We skip all NFS shares in this script because they require extra
# daemons to be running on the client in order to work correctly.
# It is best to allow nfs-utils to handle all nfs shares.
depend()
{
config /etc/fstab
need net
use afc-client amd autofs openvpn
use dns
keyword -jail -prefix -vserver
}
start()
{
local x= fs= rc=
for x in $net_fs_list $extra_net_fs_list; do
case "$x" in
nfs|nfs4)
continue
;;
esac
fs="$fs${fs:+,}$x"
done
ebegin "Mounting network filesystems"
mount -at $fs
rc=$?
if [ "$RC_UNAME" = Linux ]; then
mount -a -O _netdev
rc=$?
fi
ewend $rc "Could not mount all network filesystems"
return 0
}
stop()
{
local x= fs=
ebegin "Unmounting network filesystems"
. "$RC_LIBEXECDIR"/sh/rc-mount.sh
for x in $net_fs_list $extra_net_fs_list; do
case "$x" in
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+,}$x"
;;
esac
done
if [ -n "$fs" ]; then
umount -at $fs || eerror "Failed to simply unmount filesystems"
fi
eindent
fs=
for x in $net_fs_list $extra_net_fs_list; do
case "$x" in
nfs|nfs4)
continue
;;
*)
fs="$fs${fs:+|}$x"
;;
esac
done
[ -n "$fs" ] && fs="^($fs)$"
do_unmount umount ${fs:+--fstype-regex} $fs --netdev
retval=$?
eoutdent
if [ "$RC_UNAME" = Linux ]; then
umount -a -O _netdev
retval=$?
fi
eend $retval "Failed to unmount network filesystems"
}