JFFS2 an nodes checking
Artem B. Bityuckiy
abityuckiy at yandex.ru
Tue Sep 28 09:17:37 EDT 2004
David Woodhouse wrote:
> Bear in mind that we discard nodes with invalid data_crc. So they do not
> obsolete _older_ nodes which cover the same area. If we don't check the
> CRC we can't build up the red-black tree for the inode in the same way
> we do at the moment, because we don't actually know which nodes are
> valid. We'd have to invent another kind of data structure, in which we
> could keep information about overlapping nodes, some of which may turn
> out not to be valid.
Oh, I missed this aspect! Thanks.
As I understand if we disable the CRC checking at the iget() request, we
will lost the JFFS2 some "logging" capabilities.
For example, if the power is off during the new node write operation, we
don't lost older data since the older node's data will be used. But if
we won't check the data CRC, we will have all zeros in the correspondent
piece of the file (the hole node).
Ok. But what if we check only last node (with the highest version) and
if it is OK, don't check anything more? If it is bad, check previous,
and so on. It seems for me, these checks are enough. We cover the
situation with unexpected power losses.
There are some scenarios, where we will lost some data. For example,
some sector on the flash device becomes bad, and we lost a node which is
situated on this sector. If there is older node for this data range, the
current implementation will use it. But in this case I am not sure that
the data from the older node is better than just zeros. Are such flash
faults JFFS2's business?
What do you think?
--
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.
More information about the linux-mtd
mailing list