SOURCES: nfsfs.init - fix unmount: - don't force and all - skip ...

baggins baggins at pld-linux.org
Tue Sep 25 17:58:04 CEST 2007


Author: baggins                      Date: Tue Sep 25 15:58:04 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- fix unmount:
	- don't force and all
	- skip / and /usr (rc.shutdown will do it for us)

---- Files affected:
SOURCES:
   nfsfs.init (1.38 -> 1.39) 

---- Diffs:

================================================================
Index: SOURCES/nfsfs.init
diff -u SOURCES/nfsfs.init:1.38 SOURCES/nfsfs.init:1.39
--- SOURCES/nfsfs.init:1.38	Fri Apr 27 00:19:06 2007
+++ SOURCES/nfsfs.init	Tue Sep 25 17:57:59 2007
@@ -72,13 +72,20 @@
 	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
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/nfsfs.init?r1=1.38&r2=1.39&f=u



More information about the pld-cvs-commit mailing list