#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org
# Vasilis Tsiligiannis <acinonyxs@yahoo.gr>

START=15

e2fsck() {
	local args
	local cfg="$1"

	config_get device "$cfg" device
	[ -b "$device" ] || return 0

	config_get fstype "$cfg" fstype
	case "$fstype" in
		ext2|ext3|ext4)
			/usr/sbin/e2fsck -p "$device"
			local status="$?"
			case "$status" in
				0|1) continue;;
				2) reboot;;
				4) echo "e2fsck ($device): Warning! Uncorrected errors.";;
				*) echo "e2fsck ($device): Error $status. Check not complete.";;
			esac
			;;
		*)
			;;
	esac
}

start() {
	config_load fstab
	config_foreach e2fsck mount
}