svn commit: r250235 - in head: etc/rc.d sbin/mount

Chris Rees crees at FreeBSD.org
Sat May 4 14:00:17 UTC 2013


Author: crees (ports committer)
Date: Sat May  4 14:00:16 2013
New Revision: 250235
URL: http://svnweb.freebsd.org/changeset/base/250235

Log:
  Introduce and use new flag -L to mount for mounting only late filesystems.
  
  Previously, rc.d/mountlate mounted *all* filesystems, causing problems with
  background NFS mounts being mounted twice.
  
  PR:		conf/137629
  Submitted by:	eadler (original concept)
  Reviewed by:	mjg
  Approved by:	hrs

Modified:
  head/etc/rc.d/mountlate
  head/sbin/mount/mount.8
  head/sbin/mount/mount.c

Modified: head/etc/rc.d/mountlate
==============================================================================
--- head/etc/rc.d/mountlate	Sat May  4 12:57:21 2013	(r250234)
+++ head/etc/rc.d/mountlate	Sat May  4 14:00:16 2013	(r250235)
@@ -21,19 +21,10 @@ mountlate_start()
 	# Mount "late" filesystems.
 	#
 	err=0
-	latefs=
-	# / (root) fs is always remounted, so remove from list
-	latefs="`/sbin/mount -d -a -l | grep -v ' /$'`"
-	case ${latefs} in
-	'')
-		;;
-	*)
-		echo -n 'Mounting late file systems:'
-		mount -a -l
-		err=$?
-		echo '.'
-		;;
-	esac
+	echo -n 'Mounting late file systems:'
+	mount -a -L
+	err=$?
+	echo '.'
 
 	case ${err} in
 	0)

Modified: head/sbin/mount/mount.8
==============================================================================
--- head/sbin/mount/mount.8	Sat May  4 12:57:21 2013	(r250234)
+++ head/sbin/mount/mount.8	Sat May  4 14:00:16 2013	(r250235)
@@ -106,6 +106,13 @@ a file system mount status from read-wri
 Also
 forces the R/W mount of an unclean file system (dangerous; use with
 caution).
+.It Fl L
+When used in conjunction with the
+.Fl a
+option, mount
+.Em only
+those file systems which are marked as
+.Dq Li late .
 .It Fl l
 When used in conjunction with the
 .Fl a

Modified: head/sbin/mount/mount.c
==============================================================================
--- head/sbin/mount/mount.c	Sat May  4 12:57:21 2013	(r250234)
+++ head/sbin/mount/mount.c	Sat May  4 14:00:16 2013	(r250235)
@@ -245,14 +245,15 @@ main(int argc, char *argv[])
 	struct fstab *fs;
 	struct statfs *mntbuf;
 	int all, ch, i, init_flags, late, failok, mntsize, rval, have_fstab, ro;
+	int onlylate;
 	char *cp, *ep, *options;
 
-	all = init_flags = late = 0;
+	all = init_flags = late = onlylate = 0;
 	ro = 0;
 	options = NULL;
 	vfslist = NULL;
 	vfstype = "ufs";
-	while ((ch = getopt(argc, argv, "adF:flo:prt:uvw")) != -1)
+	while ((ch = getopt(argc, argv, "adF:fLlo:prt:uvw")) != -1)
 		switch (ch) {
 		case 'a':
 			all = 1;
@@ -266,6 +267,10 @@ main(int argc, char *argv[])
 		case 'f':
 			init_flags |= MNT_FORCE;
 			break;
+		case 'L':
+			onlylate = 1;
+			late = 1;
+			break;
 		case 'l':
 			late = 1;
 			break;
@@ -327,6 +332,8 @@ main(int argc, char *argv[])
 					continue;
 				if (hasopt(fs->fs_mntops, "noauto"))
 					continue;
+				if (!hasopt(fs->fs_mntops, "late") && onlylate)
+					continue;
 				if (hasopt(fs->fs_mntops, "late") && !late)
 					continue;
 				if (hasopt(fs->fs_mntops, "failok"))


More information about the svn-src-all mailing list