From 260f74703424d4544240a76bc1f7777e81e72c1f Mon Sep 17 00:00:00 2001 From: Daniel Rosenthal Date: Sun, 5 Oct 2008 17:43:10 -0400 Subject: [PATCH] --- yaml --- r: 116023 b: refs/heads/master c: 63fd7f30f328f99956d3c774d17219c3c8d54131 h: refs/heads/master i: 116021: d95583864b2dbb8a8f06bd4bbfcd473ddf24449a 116019: ad17a8cc8cc9ea6e840dc84ec47fa87dc4332554 116015: 5b237f78cd93f3331cad331a6aebd53780335948 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/inftlcore.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 711910389d37..c96e42796b13 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f324277cf70ad284dd99acf5ac5101e32bc8c55b +refs/heads/master: 63fd7f30f328f99956d3c774d17219c3c8d54131 diff --git a/trunk/drivers/mtd/inftlcore.c b/trunk/drivers/mtd/inftlcore.c index c4f9d3378b24..50ce13887f63 100644 --- a/trunk/drivers/mtd/inftlcore.c +++ b/trunk/drivers/mtd/inftlcore.c @@ -388,6 +388,10 @@ static u16 INFTL_foldchain(struct INFTLrecord *inftl, unsigned thisVUC, unsigned if (thisEUN == targetEUN) break; + /* Unlink the last block from the chain. */ + inftl->PUtable[prevEUN] = BLOCK_NIL; + + /* Now try to erase it. */ if (INFTL_formatblock(inftl, thisEUN) < 0) { /* * Could not erase : mark block as reserved. @@ -396,7 +400,6 @@ static u16 INFTL_foldchain(struct INFTLrecord *inftl, unsigned thisVUC, unsigned } else { /* Correctly erased : mark it as free */ inftl->PUtable[thisEUN] = BLOCK_FREE; - inftl->PUtable[prevEUN] = BLOCK_NIL; inftl->numfreeEUNs++; } }