[MTD] [INFTL] Fix infinite loop in INFTL_foldchain
authorDaniel Rosenthal <danielrosenthal@acm.org>
Sun, 5 Oct 2008 21:43:10 +0000 (17:43 -0400)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 8 Oct 2008 10:26:38 +0000 (11:26 +0100)
commit63fd7f30f328f99956d3c774d17219c3c8d54131
treed99fed43f643798b44052335af41ca5803250d17
parentf324277cf70ad284dd99acf5ac5101e32bc8c55b
[MTD] [INFTL] Fix infinite loop in INFTL_foldchain

When iterating over a chain in reverse (oldest block first), this
patch correctly marks the PUtable[] entry of the second to last erase
block of a chain as BLOCK_NIL, regardless of whether or not it can
format the last block successfully. Before, the second to last block
was only marked as pointing to BLOCK_NIL if INFTL_formatblock()
succeeded on the last block of the chain, which could potentially
result in an infinite loop if the block was worn out and refused to
format.

Signed-off-by: Daniel Rosenthal <danielrosenthal@acm.org>
Acked-by: Greg Ungerer <gerg@snapgear.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/inftlcore.c