#!/bin/sh
#
# $NetBSD: fsck_root,v 1.5 2010/09/25 15:10:14 bad 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:=0}" 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

			echo "Starting root file system check:"
			fsck $fsck_flags /
			handle_fsck_error "$?"
			return
			;;
		esac
	done < "${fstab_file}"
}

load_rc_config $name
run_rc_command "$1"
