JFFS2 and bad blocks

Thomas Gleixner tglx at linutronix.de
Mon Jan 6 13:59:08 EST 2003

On Monday 06 January 2003 18:04, simon at baydel.com wrote:
> I download the CVS stuff mid December and again today. The
> hardware ran ok before and could use jffs2 without errors but as I
> added files it was slow and I could not make file systems on
> partitions which contained bad blocks.
> The new CVS code seems to be much quicker and I can erase,
> mount and copy files to my new filesystem without error. I have set
> up the specific driver to do soft ecc. I noticed that when I reboot the
> system and the filesystem gets mounted I get errors. The more
> writes that occur the more errors I seem to get. I ran a test for a
> week or so over the break which generated log files. A reboot after
> this produced thousands of errors but the filesystem seemed ok.
> The errors are something like
> Empty flash at 0x00469ffcb ends at 0x0046a000
This happens due to NAND specific timed buffer flushing. JFFS2 fills up the 
write buffer to a full page boundary with 0xff and writes out the buffer to 
the chip, if you have no consecutive write within 2 seconds. This is done to 
ensure, that data is written to FLASH. This fill looks like empty FLASH on 
mount. So JFFS2 is wondering why there is data after the "empty" FLASH.
No reason to worry.

> or
> jffs2_scan_dirent_node(): Node CRC failed on node at 0x0046a7f0
> read 0xffffffff calculated 0xdec8161b
This happens, if the write buffer is not written to FLASH before you power 
down your system without umount. Then the write buffer is lost and you get 
this error on mount. This indicates, that you may have lost data.

> I was wondering if any of you could shed any light on this.

linutronix - competence in embedded & realtime linux
mail: tglx at linutronix.de

More information about the linux-mtd mailing list