[PATCH 15/15] UBI: Fastmap: Write a fastmap also while detaching.

From: Richard Weinberger
Date: Thu Jun 21 2012 - 17:50:29 EST


To ensure that fastmap knows all EC values we have to do this.
Otherwise fastmap my miss EC updates.
E.g: If the WL sub-system moves data from PEB A to PEB B.
It picks B from the WL pool, moves the data to it an eraes A.
If we detach now (or a power cut happens) the new EC value is lost.

Signed-off-by: Richard Weinberger <richard@xxxxxx>
---
drivers/mtd/ubi/build.c | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c
index 186bc19..611d0c4 100644
--- a/drivers/mtd/ubi/build.c
+++ b/drivers/mtd/ubi/build.c
@@ -1051,6 +1051,8 @@ int ubi_detach_mtd_dev(int ubi_num, int anyway)
ubi_notify_all(ubi, UBI_VOLUME_REMOVED, NULL);
dbg_msg("detaching mtd%d from ubi%d", ubi->mtd->index, ubi_num);

+ ubi_update_fastmap(ubi);
+
/*
* Before freeing anything, we have to stop the background thread to
* prevent it from doing anything on this device while we are freeing.
@@ -1058,10 +1060,6 @@ int ubi_detach_mtd_dev(int ubi_num, int anyway)
if (ubi->bgt_thread)
kthread_stop(ubi->bgt_thread);

- /* If no fastmap is present on the FLASH write one. */
- if (!ubi->fm)
- ubi_update_fastmap(ubi);
-
/*
* Get a reference to the device in order to prevent 'dev_release()'
* from freeing the @ubi object.
--
1.7.6.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/