head	1.8;
access;
symbols
	RELENG_8_4:1.7.0.2
	RELENG_9_1_0_RELEASE:1.6.4.1.4.2
	RELENG_9_1:1.6.4.1.0.4
	RELENG_9_1_BP:1.6.4.1
	RELENG_8_3_0_RELEASE:1.6.2.1.8.1
	RELENG_8_3:1.6.2.1.0.8
	RELENG_8_3_BP:1.6.2.1
	RELENG_9_0_0_RELEASE:1.6.4.1.2.1
	RELENG_9_0:1.6.4.1.0.2
	RELENG_9_0_BP:1.6.4.1
	RELENG_9:1.6.0.4
	RELENG_9_BP:1.6
	RELENG_7_4_0_RELEASE:1.2.2.2.8.1
	RELENG_8_2_0_RELEASE:1.6.2.1.6.1
	RELENG_7_4:1.2.2.2.0.8
	RELENG_7_4_BP:1.2.2.2
	RELENG_8_2:1.6.2.1.0.6
	RELENG_8_2_BP:1.6.2.1
	RELENG_8_1_0_RELEASE:1.6.2.1.4.1
	RELENG_8_1:1.6.2.1.0.4
	RELENG_8_1_BP:1.6.2.1
	RELENG_7_3_0_RELEASE:1.2.2.2.6.1
	RELENG_7_3:1.2.2.2.0.6
	RELENG_7_3_BP:1.2.2.2
	RELENG_8_0_0_RELEASE:1.6.2.1.2.1
	RELENG_8_0:1.6.2.1.0.2
	RELENG_8_0_BP:1.6.2.1
	RELENG_8:1.6.0.2
	RELENG_8_BP:1.6
	RELENG_7_2_0_RELEASE:1.2.2.2.4.1
	RELENG_7_2:1.2.2.2.0.4
	RELENG_7_2_BP:1.2.2.2
	RELENG_7_1_0_RELEASE:1.2.2.2.2.1
	RELENG_6_4_0_RELEASE:1.1.2.3.2.1
	RELENG_7_1:1.2.2.2.0.2
	RELENG_7_1_BP:1.2.2.2
	RELENG_6_4:1.1.2.3.0.2
	RELENG_6_4_BP:1.1.2.3
	RELENG_7_0_0_RELEASE:1.2
	RELENG_6_3_0_RELEASE:1.1.2.2
	RELENG_7_0:1.2.0.4
	RELENG_7_0_BP:1.2
	RELENG_6_3:1.1.2.2.0.2
	RELENG_6_3_BP:1.1.2.2
	RELENG_7:1.2.0.2
	RELENG_7_BP:1.2
	RELENG_6_2_0_RELEASE:1.1.2.1
	RELENG_6_2:1.1.2.1.0.2
	RELENG_6_2_BP:1.1.2.1
	RELENG_6:1.1.0.2;
locks; strict;
comment	@# @;


1.8
date	2013.05.05.00.30.04;	author svnexp;	state Exp;
branches;
next	1.7;

1.7
date	2012.11.17.01.49.05;	author svnexp;	state Exp;
branches
	1.7.2.1;
next	1.6;

1.6
date	2008.06.22.15.40.19;	author mtm;	state Exp;
branches
	1.6.2.1
	1.6.4.1;
next	1.5;

1.5
date	2008.03.11.17.21.55;	author delphij;	state Exp;
branches;
next	1.4;

1.4
date	2008.03.11.17.20.34;	author delphij;	state Exp;
branches;
next	1.3;

1.3
date	2008.03.06.14.39.33;	author mtm;	state Exp;
branches;
next	1.2;

1.2
date	2007.05.18.12.04.41;	author mtm;	state Exp;
branches
	1.2.2.1;
next	1.1;

1.1
date	2006.07.12.16.05.51;	author des;	state Exp;
branches
	1.1.2.1;
next	;

1.7.2.1
date	2012.11.17.01.49.05;	author svnexp;	state dead;
branches;
next	1.7.2.2;

1.7.2.2
date	2013.03.28.13.02.43;	author svnexp;	state Exp;
branches;
next	;

1.6.2.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.6.2.1.2.1
	1.6.2.1.4.1
	1.6.2.1.6.1
	1.6.2.1.8.1;
next	1.6.2.2;

1.6.2.2
date	2012.11.17.10.35.57;	author svnexp;	state Exp;
branches;
next	;

1.6.2.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.6.2.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.6.2.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.6.2.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.6.2.1.8.2;

1.6.2.1.8.2
date	2012.11.17.08.24.38;	author svnexp;	state Exp;
branches;
next	;

1.6.4.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.6.4.1.2.1
	1.6.4.1.4.1;
next	1.6.4.2;

1.6.4.2
date	2012.11.17.11.36.11;	author svnexp;	state Exp;
branches;
next	;

1.6.4.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.6.4.1.2.2;

1.6.4.1.2.2
date	2012.11.17.08.36.11;	author svnexp;	state Exp;
branches;
next	;

1.6.4.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.6.4.1.4.2;

1.6.4.1.4.2
date	2012.11.17.08.47.01;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1
date	2008.03.20.10.50.28;	author mtm;	state Exp;
branches;
next	1.2.2.2;

1.2.2.2
date	2008.04.10.00.25.53;	author delphij;	state Exp;
branches
	1.2.2.2.2.1
	1.2.2.2.4.1
	1.2.2.2.6.1
	1.2.2.2.8.1;
next	1.2.2.3;

1.2.2.3
date	2012.11.17.08.01.21;	author svnexp;	state Exp;
branches;
next	;

1.2.2.2.2.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.2.2.2.4.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.2.2.2.6.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.2.2.2.8.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.2.2.2.8.2;

1.2.2.2.8.2
date	2012.11.17.08.16.37;	author svnexp;	state Exp;
branches;
next	;

1.1.2.1
date	2006.09.13.08.38.48;	author des;	state Exp;
branches;
next	1.1.2.2;

1.1.2.2
date	2007.10.25.14.04.19;	author mtm;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2008.03.20.10.53.18;	author mtm;	state Exp;
branches
	1.1.2.3.2.1;
next	1.1.2.4;

1.1.2.4
date	2012.11.17.07.39.08;	author svnexp;	state Exp;
branches;
next	;

1.1.2.3.2.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;


desc
@@


1.8
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/250235
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@#!/bin/sh
#
# $FreeBSD: head/etc/rc.d/mountlate 250235 2013-05-04 14:00:16Z crees $
#

# PROVIDE: mountlate
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: nojail

. /etc/rc.subr

name="mountlate"
start_cmd="mountlate_start"
stop_cmd=":"

mountlate_start()
{
	local err latefs

	# Mount "late" filesystems.
	#
	err=0
	echo -n 'Mounting late file systems:'
	mount -a -L
	err=$?
	echo '.'

	case ${err} in
	0)
		;;
	*)
		echo 'Mounting /etc/fstab filesystems failed,' \
		    ' startup aborted'
		stop_boot true
		;;
	esac

 	# If we booted a special kernel remove the record
 	# so we will boot the default kernel next time.
 	if [ -x /sbin/nextboot ]; then
		/sbin/nextboot -D
 	fi
}

load_rc_config $name
run_rc_command "$1"
@


1.7
log
@Switching exporter and resync
@
text
@d3 1
a3 1
# $FreeBSD: head/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
d24 4
a27 13
	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
@


1.7.2.1
log
@file mountlate was added on branch RELENG_8_4 on 2013-03-28 13:02:43 +0000
@
text
@d1 56
@


1.7.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 56
#!/bin/sh
#
# $FreeBSD: releng/8.4/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
#

# PROVIDE: mountlate
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: nojail

. /etc/rc.subr

name="mountlate"
start_cmd="mountlate_start"
stop_cmd=":"

mountlate_start()
{
	local err latefs

	# 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

	case ${err} in
	0)
		;;
	*)
		echo 'Mounting /etc/fstab filesystems failed,' \
		    ' startup aborted'
		stop_boot true
		;;
	esac

 	# If we booted a special kernel remove the record
 	# so we will boot the default kernel next time.
 	if [ -x /sbin/nextboot ]; then
		/sbin/nextboot -D
 	fi
}

load_rc_config $name
run_rc_command "$1"
@


1.6
log
@SVN rev 179928 on 2008-06-22 15:40:19Z by mtm

Don't say we're going to mount filesystems of a certain type unless
there actually are filesystems of that type to mount.
@
text
@d3 1
a3 1
# $FreeBSD$
@


1.6.4.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.6.4.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/9/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
@


1.6.4.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.6.4.1.4.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.1/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
@


1.6.4.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.6.4.1.2.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/9.0/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
@


1.6.2.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.6.2.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d3 1
a3 1
# $FreeBSD: stable/8/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
@


1.6.2.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.6.2.1.8.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/8.3/etc/rc.d/mountlate 180563 2008-07-16 19:22:48Z dougb $
@


1.6.2.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.6.2.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.6.2.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.5
log
@Forced commit to correct previous commit message:

Do nextboot -D twice during boot.  The first time in rc.d/root which ensures that
we can remove the file as early as possible, but shut up nextboot at this moment
if the operation is failed, because /boot is not necessarily a part of /; the
newly added second run is placed in rc.d/mountlate after all filesystems were
mounted.

Discussed at:		-rc@@
Suggestions from:	brooks, mtm
MFC after:		1 month
@
text
@d19 1
a19 1
	local err
d22 15
a36 4
	echo -n 'Mounting late file systems:'
	mount -a -l
	err=$?
	echo '.'
@


1.4
log
@root
@
text
@@


1.3
log
@The check for errors from the mount command did not work as intended
because another command (echo) is executed between the mount command
and the check.

Reported by: Sergey Baturov <sergey@@toor.org.ru>
MFC after: 2 weeks
@
text
@d36 6
@


1.2
log
@o Implement the stop_boot subroutine [1]. This subroutine can be used by
  scripts in rc.d to stop rc(8) from booting into multi-user mode when
  a critical or severe error condition is encountered.

o Modify scripts in etc/rc.d that already implemented this functionality
  independently.

o Document it.

[1] - This subroutine was implemented in FreeBSD in rc.d/fsck. I moved it
      to rc.subr(8). Our version differs slightly in that it takes an
      optional argument to stop the boot even if "autoboot" is not set.

Obtained from: NetBSD
MFC after: 2 weeks
@
text
@d19 2
d24 1
d27 1
a27 1
	case $? in
@


1.2.2.1
log
@MFC:
	The check for errors from the mount command did not work as
	intended because another command (echo) is executed between
	the mount command and the check.

	Reported by: Sergey Baturov <sergey@@toor.org.ru>
@
text
@a18 2
	local err

a21 1
	err=$?
d24 1
a24 1
	case ${err} in
@


1.2.2.2
log
@MFC: Do nextboot -D twice during boot.  The first time in rc.d/root which ensures
that we can remove the file as early as possible, but shut up nextboot at this
moment if the operation is failed, because /boot is not necessarily a part of /;
the newly added second run is placed in rc.d/mountlate after all filesystems were
mounted.
@
text
@a35 6

 	# If we booted a special kernel remove the record
 	# so we will boot the default kernel next time.
 	if [ -x /sbin/nextboot ]; then
		/sbin/nextboot -D
 	fi
@


1.2.2.3
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: stable/7/etc/rc.d/mountlate 220110 2011-03-28 19:29:30Z dougb $
@


1.2.2.2.8.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.2.2.2.8.2
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: releng/7.4/etc/rc.d/mountlate 178053 2008-04-10 00:25:53Z delphij $
@


1.2.2.2.6.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.2.2.2.4.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.2.2.2.2.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.1
log
@Teach mount(8) about a 'late' keyword, which means the file system should
not be mounted unless the -l flag was specified.

Add an rc script, mountlate, which basically runs 'mount -a -l'.  It runs
after DAEMON but before LOGIN.

This is useful for things like loopback mounts, because mountcritremote
runs before mountd  / nfsd (since /usr might be a remote file system), so
an attempt to mount a loopback network file system in mountcritremote will
fail.

Also add a progress message to mountcritlocal, for the sake of symmetry
with similar messages in mountcritremote and mountlate.

Reviewed by:	freebsd-rc
MFC after:	3 weeks
@
text
@d30 1
a30 1
		kill -QUIT $$
@


1.1.2.1
log
@MFC: "late" flag in fstab + mountlate script + necessary changes to mount(8)

Approved by:	re (kensmith)
@
text
@@


1.1.2.2
log
@MFC:
  o Implement the stop_boot subroutine [1]. This subroutine can be used by
    scripts in rc.d to stop rc(8) from booting into multi-user mode when
    a critical or severe error condition is encountered.

  o Modify scripts in etc/rc.d that already implemented this functionality
    independently.

  o Document it.

  [1] - This subroutine was implemented in FreeBSD in rc.d/fsck. I moved it
        to rc.subr(8). Our version differs slightly in that it takes an
        optional argument to stop the boot even if "autoboot" is not set.

  Obtained from: NetBSD
@
text
@d30 1
a30 1
		stop_boot true
@


1.1.2.3
log
@MFC:
	The check for errors from the mount command did not work as
	intended because another command (echo) is executed between
	the mount command and the check.

	Reported by: Sergey Baturov <sergey@@toor.org.ru>
@
text
@a18 2
	local err

a21 1
	err=$?
d24 1
a24 1
	case ${err} in
@


1.1.2.4
log
@Switch importer
@
text
@d3 1
a3 1
# $FreeBSD: stable/6/etc/rc.d/mountlate 177449 2008-03-20 10:53:18Z mtm $
@


1.1.2.3.2.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


