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
This commit is contained in:
parent
c951cd462f
commit
b48b774f99
@ -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)
|
||||
|
@ -106,6 +106,13 @@ a file system mount status from read-write to read-only.
|
||||
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
|
||||
|
@ -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"))
|
||||
|
Loading…
Reference in New Issue
Block a user