JFFS2 powerfail ?

Jamie Lokier jamie at shareable.org
Wed Apr 23 13:48:58 EDT 2008


Artem Bityutskiy wrote:
> > JFFS2 notice: (791) check_node_data: wrong data CRC in data node at 0x01062120: read 0xfac2f85a, calculated 0x9ac0c6d1.
> > JFFS2 notice: (791) check_node_data: wrong data CRC in data node at 0x002b9bf0: read 0x9f182fab, calculated 0x4ad20e5f.
> > JFFS2 notice: (791) check_node_data: wrong data CRC in data node at 0x002b5d60: read 0x79a2a9d8, calculated 0x35234c9a.
> 
> This is normal. It's just half-written nodes which correspond to the
> last writes you made before the power cut. They are harmless, although
> spam the syslog. JFFS2 cannot remove them straight after mount, so they
> may accumulate. Which means each time you see corruption messages for
> the previous unclean reboots. However, the corrupted nodes will go away
> some time, when JFFS2 decides to garbage-collect corresponding
> eraseblocks. IOW, don't worry, this is a feature.

If they are going to be removed at the next GC, it would be nice to
remove them earlier by overwriting them with all-1s - would that work?

I'm thinking of the case where device spews a page of CRC errors on
every boot for a long time, until you until you write enough data to
the filesystem that it reclaims these blocks - which you might not do
for a long time (if ever).

(Alternatively, can triggering a background GC clean them up reliably?)

After all, there might be application level recovery for partially
written files, but that won't clean up the incomplete nodes.

-- Jamie



More information about the linux-mtd mailing list