#!/bin/sh
# Copyright (C) 2006-2010 OpenWrt.org
# Copyright (C) 2010 Vertical Communications

find_mount_jffs2() {
	overlay_head=`hexdump  -C -n 8 $(find_mtd_part overlay)| awk 'NR<2 {print $2$3$4$5}'`
	if [ "$overlay_head" = "ffffffff" ] ; then
		echo "overlay_head  $overlay_head"
		nvram set  flag_format_overlay=1
		rec_mtd=$(find_mtd_part cfg_bak)
		[ -n "$rec_mtd" ] && touch /tmp/need_config_recovery
	fi

	mount "$(find_mtd_part overlay)" /data -t jffs2
	if [ $? -ne 0 ] ; then
		#data mount failed. this is not suppose to happen.try to recover later
		touch /tmp/need_config_recovery
		nvram set flag_format_overlay=1
		nvram set overlay_mount_failed=1
		nvram commit

		mtd erase overlay
		mount "$(find_mtd_part overlay)" /data -t jffs2
	fi

	mkdir -p /data/usr/log
}

jffs2_not_mounted() {
    if [ "$pi_jffs2_mount_success" != "true" ]; then
	return 0
    else
	return 1
    fi
}

do_mount_jffs2() {
    check_skip || {
	find_mount_jffs2 && pi_jffs2_mount_success=true
    }
}

boot_hook_add preinit_mount_root do_mount_jffs2

