[Yaffs] YAFFS2 failure

Charles Manning manningc2@actrix.gen.nz
Fri Jun 17 01:22:17 BST 2005


Some points to mention...

> Listing lost+found gives:
> # ls /mnt/lost\+found/
> ls: /mnt/lost+found/obj17170432: Value too large for defined data type
> ls: /mnt/lost+found/obj17235968: Value too large for defined data type
> ls: /mnt/lost+found/obj17301504: Value too large for defined data type
> [etc...]
>

Stuff turns up in lost+found when the directory structure can't handle it=
.

Stuff in lost+found shows up in two ways:
1) If the name looks sane (eg. .../lost+found/myfile.txt) then it means t=
hat=20
YAFFS scanning could find the directory that myfile belongs to and it got=
=20
dumped there instead. Well actually it will be dumped in=20
.../lost+found/objxxx/myfile.txt).
2) If the file name is something like objnnnn then it means that YAFFS fo=
und=20
some data chunks, but could not find a file name to associate with them.

We're observing 2 above.

It is also worth noting that the nnn in obj nnn is made up by YAFFS at ls=
=20
time from the objectId of the chunk. Thus, obj17170432 tells us that a ch=
unk=20
turned up marked with objectId 1717042.  Now objectIds are created=20
sequentiually starting at 4096, and I don't believe that 1717000-odd file=
s=20
have been created on this system, which says to me that the objectId in t=
he=20
tags got corrupted.

All this is very consistent with the mtd problems discussed by others her=
e. I=20
believe this has been fixed in mtd CVS.

As a side issue: I have finally got around to purchasing a new coimputer =
to=20
be loaded with Linux 2.6. It has 1GB of RAM which means I should be able =
to=20
do proper mtd emulations of up to, say, 512MB of NAND. I hope this will b=
e=20
able to help me do a better job of improving mtd and 2.6 integration.

-- Charles





More information about the yaffs mailing list