Hi, I am using openwrt CC and an ubifs filesystem on top of ubi. If I plug off the power during startup, some times my configuration get lost and i am back to factory reset.
In the package fstools there is the bin "mount_root" it is called twice during startup. 1. S10boot at line 10 2. S95done at line 6 this calles edit the ./fs_state link S10boot/S95done: --- Because ubifs is doing filesystem handling in a background process "ubi_bgt0d", could it be possible, that (see code) ./.fs_state is not rewritten written anymore? So that at next boot the system thinks he is in upgrade mode? If I add a sleep(10) between unlink and symlink function call i can reproduce the failure if i unplug the power. I think the first think what should be done is to call "snprintf(valstr, sizeof(valstr), "%d", state);" before "unlink(path). Or this this a deeper Problem? int fs_state_set(const char *dir, enum fs_state state) { char valstr[16]; char *path; -> path = alloca(strlen(dir) + 1 + sizeof("/.fs_state")); -> sprintf(path, "%s/.fs_state", dir); -> unlink(path); -> snprintf(valstr, sizeof(valstr), "%d", state); return symlink(valstr, path); } Regards Flo _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel