Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 59d8235b authored by Andy Lowe's avatar Andy Lowe Committed by David Woodhouse
Browse files

[JFFS2] Fix unpoint length



Fix a couple of instances in JFFS2 where the unpoint() routine is
being called with the wrong length in cases where the point() routine
truncated a request.

Signed-off-by: default avatarAndy Lowe <alowe@mvista.com>
Signed-off-by: default avatarNicolas Pitre <nico@cam.org>
Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 097f2576
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -340,7 +340,7 @@ static int jffs2_block_check_erase(struct jffs2_sb_info *c, struct jffs2_erasebl
		if (retlen < c->sector_size) {
			/* Don't muck about if it won't let us point to the whole erase sector */
			D1(printk(KERN_DEBUG "MTD point returned len too short: 0x%zx\n", retlen));
			c->mtd->unpoint(c->mtd, ebuf, jeb->offset, c->sector_size);
			c->mtd->unpoint(c->mtd, ebuf, jeb->offset, retlen);
			goto do_flash_read;
		}
		wordebuf = ebuf-sizeof(*wordebuf);
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ static int check_node_data(struct jffs2_sb_info *c, struct jffs2_tmp_dnode_info
		err = c->mtd->point(c->mtd, ofs, len, &retlen, &buffer);
		if (!err && retlen < tn->csize) {
			JFFS2_WARNING("MTD point returned len too short: %zu instead of %u.\n", retlen, tn->csize);
			c->mtd->unpoint(c->mtd, buffer, ofs, len);
			c->mtd->unpoint(c->mtd, buffer, ofs, retlen);
		} else if (err)
			JFFS2_WARNING("MTD point failed: error code %d.\n", err);
		else
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ int jffs2_scan_medium(struct jffs2_sb_info *c)
		if (!ret && pointlen < c->mtd->size) {
			/* Don't muck about if it won't let us point to the whole flash */
			D1(printk(KERN_DEBUG "MTD point returned len too short: 0x%zx\n", pointlen));
			c->mtd->unpoint(c->mtd, flashbuf, 0, c->mtd->size);
			c->mtd->unpoint(c->mtd, flashbuf, 0, pointlen);
			flashbuf = NULL;
		}
		if (ret)