void stop_jffs2(int stop) { struct statfs sf; #if defined(RTCONFIG_PSISTLOG) || defined(RTCONFIG_JFFS2LOG) int restart_syslogd = 0; #endif if (!wait_action_idle(10)) return; if ((statfs("/jffs", &sf) == 0) && (sf.f_type != 0x71736873)) { // is mounted run_userfile("/jffs", ".autostop", "/jffs", 5); run_nvscript("script_autostop", "/jffs", 5); } #if defined(RTCONFIG_PSISTLOG) || defined(RTCONFIG_JFFS2LOG) if (!stop && !strncmp(get_syslog_fname(0), "/jffs/", 6)) { restart_syslogd = 1; stop_syslogd(); eval("cp", "/jffs/syslog.log", "/jffs/syslog.log-1", "/tmp"); } #endif notice_set("jffs", "Stopped"); if (umount("/jffs")) umount2("/jffs", MNT_DETACH); else modprobe_r(JFFS_NAME); #if defined(RTCONFIG_PSISTLOG) || defined(RTCONFIG_JFFS2LOG) if (restart_syslogd) start_syslogd(); #endif }
void stop_jffs2(void) { struct statfs sf; if (!wait_action_idle(10)) return; if ((statfs("/jffs", &sf) == 0) && (sf.f_type != 0x71736873)) { // is mounted run_userfile("/jffs", ".autostop", "/jffs", 5); run_nvscript("script_autostop", "/jffs", 5); } notice_set("jffs", "Stopped"); umount2("/jffs", MNT_DETACH); modprobe_r(JFFS_NAME); }