[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: David Woodhouse <dwmw2@infradead.org>
This commit is contained in:
parent
718ea8361b
commit
0477d24e2a
1 changed files with 10 additions and 3 deletions
|
@ -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) {
|
||||
/* 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);
|
||||
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);
|
||||
|
|
Loading…
Reference in a new issue