Yaffs relies on error reporting from mtd to signal operations that require a block to be retired (move data to a reliable/spare block.)

The actual error detection and correction is done by mtd and/or the NAND driver via ECC algorithms. Some are stronger than others, eg 1-bit vs 4-bit corrections.

It is important for blocks with too many correctable ECC errors to be retired before the data becomes unreadable or corrupt. Again, Yaffs does the retiring based on the lower level drivers reporting the corrected reads to Yaffs and puts blocks into the bbt (bad block table.)

Hope this helps.

Alan




On Jul 14, 2012, at 11:52 PM, "S. K." <s.kr713@yahoo.com> wrote:


Hello!


I have some questions about data integrity in the YAFFS. There is some where(such as Wikipedia) that represent:
"YAFFS is a robust log-structured file system that holds data integrity as a high priority."

But there is not any other explanation about it. How can we be sure about data integrity in the YAFFS?

What is the mechanism for it?(Is there any hash function or ... ?)

Is there any relation between log structure in the YAFFS and making data integrity?

Where does the data integrity related parts has been implemented in the YAFFS source code?


Thanks.

_______________________________________________
yaffs mailing list
yaffs@lists.aleph1.co.uk
http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs