From patchwork Wed Jun 13 10:42:09 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [12/21] UBI: Fastmap: Handle unused "used" PEBs better Date: Wed, 13 Jun 2012 00:42:09 -0000 From: Richard Weinberger X-Patchwork-Id: 164628 Message-Id: <1339584138-69914-13-git-send-email-richard@nod.at> To: linux-mtd@lists.infradead.org Cc: Richard Weinberger , adrian.hunter@intel.com, Heinz.Egger@linutronix.de, shmulik.ladkani@gmail.com, tglx@linutronix.de, tim.bird@am.sony.com If fastmap detects that some PEBs in the used list are no longer used it has to erase them. Signed-off-by: Richard Weinberger --- drivers/mtd/ubi/fastmap.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c index 20b016e..1c2e906 100644 --- a/drivers/mtd/ubi/fastmap.c +++ b/drivers/mtd/ubi/fastmap.c @@ -712,6 +712,13 @@ static int ubi_attach_fastmap(struct ubi_device *ubi, if (max_sqnum > ai->max_sqnum) ai->max_sqnum = max_sqnum; + list_for_each_entry_safe(tmp_aeb, _tmp_aeb, &used, u.list) { + list_del(&tmp_aeb->u.list); + dbg_bld("adding PEB from used to erase list: %i", tmp_aeb->pnum); + add_aeb(ai, &ai->erase, tmp_aeb->pnum, tmp_aeb->ec, 0); + kmem_cache_free(ai->aeb_slab_cache, tmp_aeb); + } + return 0; fail_bad: