#!/bin/sh
#
# $NetBSD: fsck_root,v 1.3 2009/07/10 20:02:21 christos Exp $
#

# PROVIDE: fsck_root

$_rc_subr_loaded . /etc/rc.subr

name="fsck_root"
start_cmd="fsck_root_start"
stop_cmd=":"
fstab_file=/etc/fstab

fsck_root_start()
{
	if [ -e /fastboot ]; then
		echo "Fast boot: skipping disk checks."
		return
	fi
	trap : 2 		# Ignore SIGINT, SIGQUIT, so we
	trap : 3		# enter single-user mode on failure.

	# Do nothing if root file system has fs_passno=0 in /etc/fstab.
	while read fs_spec fs_file fs_vfstype fs_mntops fs_freq fs_passno
	do
		case "${fs_spec}:${fs_file}:${fs_passno}" in
		\#*|'':*)
			continue # skip comment or blank line
			;;
		*:/:0)
			echo "Not checking /: fs_passno = 0 in ${fstab_file}"
			return
			;;
		*:/:*)	case "${fs_spec}" in
			*:*)
				echo "Not checking /: nfs mounted"
				return
				;;
			esac
			;;
		esac
	done <"${fstab_file}"

	echo "Starting root file system check:"
	fsck $fsck_flags /
	handle_fsck_error "$?"
}

load_rc_config $name
run_rc_command "$1"
