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

Commit 0477d24e authored by David Woodhouse's avatar David Woodhouse
Browse files

[JFFS2] Fix obsoletion of metadata nodes in jffs2_add_tn_to_tree()



We should keep the mdata node with higher version number, not just the
one we happen to find latest. Doh.

Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
parent 718ea836
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -229,9 +229,16 @@ static int jffs2_add_tn_to_tree(struct jffs2_sb_info *c,
	   check anyway. */
	if (!tn->fn->size) {
		if (rii->mdata_tn) {
			if (rii->mdata_tn->version < tn->version) {
				/* We had a candidate mdata node already */
				dbg_readinode("kill old mdata with ver %d\n", rii->mdata_tn->version);
				jffs2_kill_tn(c, rii->mdata_tn);
			} else {
				dbg_readinode("kill new mdata with ver %d (older than existing %d\n",
					      tn->version, rii->mdata_tn->version);
				jffs2_kill_tn(c, tn);
				return 0;
			}
		}
		rii->mdata_tn = tn;
		dbg_readinode("keep new mdata with ver %d\n", tn->version);