Patchwork UBI: Fix invalidate_fastmap()

login
register
mail settings
Submitter Richard Weinberger
Date Aug. 19, 2013, 8:31 p.m.
Message ID <1376944309-11342-1-git-send-email-richard@nod.at>
Download mbox | patch
Permalink /patch/268305/
State New
Headers show

Comments

Richard Weinberger - Aug. 19, 2013, 8:31 p.m.
Onging tests uncovered that invalidate_fastmap() is broken.
It must not call ubi_wl_put_fm_peb() because all PEBs used
by the old fastmap have already been put back.

Signed-off-by: Richard Weinberger <richard@nod.at>
[rw: I did not Cc -stable because fastmap is an experimental feature.]
---
 drivers/mtd/ubi/fastmap.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
Artem Bityutskiy - Aug. 20, 2013, 3 p.m.
On Mon, 2013-08-19 at 22:31 +0200, Richard Weinberger wrote:
> Onging tests uncovered that invalidate_fastmap() is broken.
> It must not call ubi_wl_put_fm_peb() because all PEBs used
> by the old fastmap have already been put back.
> 
> Signed-off-by: Richard Weinberger <richard@nod.at>

Pushed to linux-ubi.git, thanks!

Patch

diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
index 1542751..f5aa4b0 100644
--- a/drivers/mtd/ubi/fastmap.c
+++ b/drivers/mtd/ubi/fastmap.c
@@ -1343,7 +1343,7 @@  out:
 static int invalidate_fastmap(struct ubi_device *ubi,
 			      struct ubi_fastmap_layout *fm)
 {
-	int ret, i;
+	int ret;
 	struct ubi_vid_hdr *vh;
 
 	ret = erase_block(ubi, fm->e[0]->pnum);
@@ -1360,9 +1360,6 @@  static int invalidate_fastmap(struct ubi_device *ubi,
 	vh->sqnum = cpu_to_be64(ubi_next_sqnum(ubi));
 	ret = ubi_io_write_vid_hdr(ubi, fm->e[0]->pnum, vh);
 
-	for (i = 0; i < fm->used_blocks; i++)
-		ubi_wl_put_fm_peb(ubi, fm->e[i], i, fm->to_be_tortured[i]);
-
 	return ret;
 }