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"))
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to