INFTL_mount query
Mohanlal Jangir
mohanlaljangir at gmail.com
Wed Sep 9 18:32:05 EDT 2009
589 for (first_block = s->firstEUN; first_block <= s->lastEUN;
first_block++) {
590 if (s->PUtable[first_block] != BLOCK_NOTEXPLORED)
591 continue;
592
593 do_format_chain = 0;
594 first_logical_block = BLOCK_NIL;
595 last_block = BLOCK_NIL;
596 block = first_block;
597
598 for (chain_length = 0; ; chain_length++) {
599
600 if ((chain_length == 0) &&
601 (s->PUtable[block] != BLOCK_NOTEXPLORED)) {
602 /* Nothing to do here, onto next block */
603 break;
604 }
Is code from line 600 to 604 not redundant ? Because for chain_length
== 0 case, block is always equal to first_block (line 596) and
s->PUtable[first_block] != BLCOK_NOTEXPLORED is already checked at
line 590.
What is difference between ANAC and NACs?
I somewhere read that ANAC means accumulated number along chain. What
does this signify?
Does inftl code handles ANAC overflow (it is unsigned char)?
During foldchain, INFTL_formatblock does not update inftl_unithead1
data for the block being formated. Does this not create problem if
system is rebooted and INFTL_mount reforms chains? (Because some
blocks still has stale virtualUnitNo stored in unithead).
Thanks
-Mohan
More information about the linux-mtd
mailing list