[PATCH 07/21] UBI: Fastmap: Prevent PEB leak
Richard Weinberger
richard at nod.at
Wed Jun 13 06:42:04 EDT 2012
Before writing the new fastmap we have to ensure that no
PEBs are in flight.
Signed-off-by: Richard Weinberger <richard at nod.at>
---
drivers/mtd/ubi/fastmap.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
index c2a1c18..82a011d 100644
--- a/drivers/mtd/ubi/fastmap.c
+++ b/drivers/mtd/ubi/fastmap.c
@@ -1366,6 +1366,14 @@ int ubi_update_fastmap(struct ubi_device *ubi)
kfree(old_fm);
}
+ /* Ensure that the PEBs of the old fastmap got erased and added to the
+ * free list before we write the fastmap. Otherwise fastmp does not
+ * see these PEBs and we leak them.
+ * FIXME: Rewrite ubi_wl_flush() such that we can flush only the
+ * erase work instead of all work.
+ */
+ ubi_wl_flush(ubi);
+
ret = ubi_write_fastmap(ubi, new_fm);
out_unlock:
mutex_unlock(&ubi->fm_mutex);
--
1.7.6.5
More information about the linux-mtd
mailing list