svn commit: r222466 - head/sbin/umount

Rick Macklem rmacklem at FreeBSD.org
Sun May 29 21:13:53 UTC 2011


Author: rmacklem
Date: Sun May 29 21:13:53 2011
New Revision: 222466
URL: http://svn.freebsd.org/changeset/base/222466

Log:
  Modify the umount(8) command so that it doesn't do
  a sync(2) syscall before unmount(2) for the "-f" case.
  This avoids a forced dismount from getting stuck for
  an NFS mountpoint in sync() when the server is not
  responsive. With this commit, forced dismounts should
  normally work for the NFS clients, but can take up to
  about 1minute to complete.
  
  PR:		kern/157365
  Reviewed by:	kib
  MFC after:	2 weeks

Modified:
  head/sbin/umount/umount.c

Modified: head/sbin/umount/umount.c
==============================================================================
--- head/sbin/umount/umount.c	Sun May 29 21:03:40 2011	(r222465)
+++ head/sbin/umount/umount.c	Sun May 29 21:13:53 2011	(r222466)
@@ -90,9 +90,6 @@ main(int argc, char *argv[])
 	struct statfs *mntbuf, *sfs;
 	struct addrinfo hints;
 
-	/* Start disks transferring immediately. */
-	sync();
-
 	all = errs = 0;
 	while ((ch = getopt(argc, argv, "AaF:fh:t:v")) != -1)
 		switch (ch) {
@@ -127,6 +124,10 @@ main(int argc, char *argv[])
 	argc -= optind;
 	argv += optind;
 
+	/* Start disks transferring immediately. */
+	if ((fflag & MNT_FORCE) == 0)
+		sync();
+
 	if ((argc == 0 && !all) || (argc != 0 && all))
 		usage();
 


More information about the svn-src-all mailing list