| Submitter | Richard Weinberger |
|---|---|
| Date | June 13, 2012, 10:42 a.m. |
| Message ID | <1339584138-69914-8-git-send-email-richard@nod.at> |
| Download | mbox | patch |
| Permalink | /patch/164624/ |
| State | New |
| Headers | show |
Comments
Patch
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);
Before writing the new fastmap we have to ensure that no PEBs are in flight. Signed-off-by: Richard Weinberger <richard@nod.at> --- drivers/mtd/ubi/fastmap.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)