diff options
author | Bill Nottingham <notting@redhat.com> | 2004-01-27 20:24:12 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2004-01-27 20:24:12 +0000 |
commit | 842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1 (patch) | |
tree | 69b762acd13b0a77d17d63e01774232a7e20a7da /rc.d/init.d | |
parent | 3b07364ff801cfd96954ee148a067a3907aded9e (diff) | |
download | initscripts-842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1.tar initscripts-842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1.tar.gz initscripts-842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1.tar.bz2 initscripts-842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1.tar.xz initscripts-842261ee6fc9d8e3f2f9339b22efdc8328d7b8d1.zip |
NFSv4 support (<chucklever@bigfoot.com>, <steved@redhat.com>)
Diffstat (limited to 'rc.d/init.d')
-rwxr-xr-x | rc.d/init.d/halt | 21 | ||||
-rwxr-xr-x | rc.d/init.d/netfs | 12 |
2 files changed, 27 insertions, 6 deletions
diff --git a/rc.d/init.d/halt b/rc.d/init.d/halt index 660834db..8d9c3846 100755 --- a/rc.d/init.d/halt +++ b/rc.d/init.d/halt @@ -148,6 +148,27 @@ devremaining=`awk '!/^#/ && $1 ~ /^\/dev\/loop/ && $2 != "/" {print $1}' /proc/m done } +# Unmount RPC pipe file systems +sig= +retry=3 +remaining=`awk '!/^#/ && $3 ~ /^rpc_pipefs$/ || $3 ~ /^rpc_svc_gss_pipefs$/ {print $2}' /proc/mounts` + +while [ -n "$remaining" -a "$retry" -gt 0 ] +do + if [ "$retry" -lt 3 ]; then + runcmd $"Unmounting pipe file systems (retry): " umount -f $remaining + else + runcmd $"Unmounting pipe file systems: " umount -f $remaining + fi + sleep 2 + remaining=`awk '!/^#/ && $3 ~ /^rpc_pipefs$/ || $3 ~ /^rpc_svc_gss_pipefs$/ {print $2}' /proc/mounts` + [ -z "$remaining" ] && break + /sbin/fuser -k -m $sig $remaining >/dev/null + sleep 5 + retry=$(($retry-1)) + sig=-9 +done + sig= retry=3 remaining=`halt_get_remaining | sort -r` diff --git a/rc.d/init.d/netfs b/rc.d/init.d/netfs index 204e262b..2523e8ff 100755 --- a/rc.d/init.d/netfs +++ b/rc.d/init.d/netfs @@ -19,11 +19,11 @@ # Check that networking is up. [ "${NETWORKING}" = "no" ] && exit 0 -NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 == "nfs" && $4 !~ /noauto/ { print $2 }' /etc/fstab` +NFSFSTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $4 !~ /noauto/ { print $2 }' /etc/fstab` SMBFSTAB=`LC_ALL=C awk '!/^#/ && $3 == "smbfs" && $4 !~ /noauto/ { print $2 }' /etc/fstab` NCPFSTAB=`LC_ALL=C awk '!/^#/ && $3 == "ncpfs" && $4 !~ /noauto/ { print $2 }' /etc/fstab` NETDEVMTAB=`LC_ALL=C awk '!/^#/ && $4 ~ /_netdev/ && $2 != "/" { print $2 }' /proc/mounts` -NFSMTAB=`LC_ALL=C awk '!/^#/ && $3 == "nfs" && $2 != "/" { print $2 }' /proc/mounts` +NFSMTAB=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $2 != "/" { print $2 }' /proc/mounts` SMBMTAB=`LC_ALL=C awk '!/^#/ && $3 == "smbfs" { print $2 }' /proc/mounts` NCPMTAB=`LC_ALL=C awk '!/^#/ && $3 == "ncpfs" { print $2 }' /proc/mounts` @@ -33,12 +33,12 @@ case "$1" in [ -n "$NFSFSTAB" ] && { [ ! -f /var/lock/subsys/portmap ] && service portmap start - action $"Mounting NFS filesystems: " mount -a -t nfs + action $"Mounting NFS filesystems: " mount -a -t nfs,nfs4 } [ -n "$SMBFSTAB" ] && action $"Mounting SMB filesystems: " mount -a -t smbfs [ -n "$NCPFSTAB" ] && action $"Mounting NCP filesystems: " mount -a -t ncpfs touch /var/lock/subsys/netfs - action $"Mounting other filesystems: " mount -a -t nonfs,smbfs,ncpfs + action $"Mounting other filesystems: " mount -a -t nonfs,nonfs4,smbfs,ncpfs ;; stop) # Unmount loopback stuff first @@ -94,9 +94,9 @@ case "$1" in while [ -n "$remaining" -a "$retry" -gt 0 ] do if [ "$retry" -lt 3 ]; then - action $"Unmounting NFS filesystems (retry): " umount -f -l -a -t nfs + action $"Unmounting NFS filesystems (retry): " umount -f -l -a -t nfs,nfs4 else - action $"Unmounting NFS filesystems: " umount -f -l -a -t nfs + action $"Unmounting NFS filesystems: " umount -f -l -a -t nfs,nfs4 fi sleep 2 remaining=`LC_ALL=C awk '!/^#/ && $3 ~ /^nfs/ && $2 != "/" {print $2}' /proc/mounts` |