From 894b672db5940e25371b6d0eb8b95f90b3541d40 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Tue, 25 Sep 2007 15:57:59 +0000 Subject: [PATCH] - fix unmount: - don't force and all - skip / and /usr (rc.shutdown will do it for us) Changed files: nfsfs.init -> 1.39 --- nfsfs.init | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/nfsfs.init b/nfsfs.init index d256091..29e936c 100644 --- a/nfsfs.init +++ b/nfsfs.init @@ -72,13 +72,20 @@ stop() { show "Unmounting NFS filesystems" busy retry=3 - remaining=$(awk '$3 ~ /^nfs(4$|$)/ {print $2}' $fsfile) + remaining=$(awk '$3 ~ /^nfs(4$|$)/ && $2 !~ /^\/(usr$|$)/ {print $2}' $fsfile) while [ -n "$remaining" -a $retry -gt 0 ]; do - fuser -msk -TERM `awk '$3 ~ /^nfs(4$|$)/ {print $2}' < $fsfile` + fuser -msk -TERM `awk '$3 ~ /^nfs(4$|$)/ && $2 !~ /^\/(usr$|$)/ {print $2}' < $fsfile` sleep 2 - fuser -msk -KILL `awk '$3 ~ /^nfs(4$|$)/ {print $2}' < $fsfile` - umount -a -f -t nfs,nfs4 - remaining=$(awk '$3 ~ /^nfs(4$|$)/ {print $2}' $fsfile) + fuser -msk -KILL `awk '$3 ~ /^nfs(4$|$)/ && $2 !~ /^\/(usr$|$)/ {print $2}' < $fsfile` + # Sort filesystems to unmount in reverse order + rem="" + for r in $(awk '$3 ~ /^nfs(4$|$)/ && $2 !~ /^\/(usr$|$)/ {print $2}' $fsfile) ; do + rem="$r $rem" + done + for fs in $rem ; do + umount $fs + done + remaining=$(awk '$3 ~ /^nfs(4$|$)/ && $2 !~ /^\/(usr$|$)/ {print $2}' $fsfile) retry=$(($retry-1)) done ok -- 2.44.0