read_pnode: error -22 reading pnode at XX:YYYYY
Rick Johnson
rick22 at wi.rr.com
Fri May 27 16:26:59 EDT 2011
I had some other observations that I might as well note too.
We had added code to constantly check the value of pnode->num versus the
num returned from calc_pnode_num_from_parent(). We noticed errors
mainly in two places: ubifs_pack_pnode() and ubifs_get_pnode().
The ubifs_get_pnode() was more interesting though. We only got a
corrupted 'num' value when the function returned the pnode from memory
and not from flash. In other words, when ubifs_get_pnode() followed
this path:
branch = &parent->nbranch[iip];
pnode = branch->pnode;
if (pnode)
return pnode;
So it seems like 'num' is getting corrupted or changed while the pnode
is in memory. If it being corrupted in memory, it's strange that 'num'
is so consistently targeted and that the corruption is not more random.
Another thing we noticed was that the pnode's with the the corrupted
'num' had lprops with LEB numbers between 7600 and 8010 (which is near
the max of 8062 on our flash). Maybe that's just a coincidence, but I
might as well note it.
Thanks for any advice you might have!
Rick
More information about the linux-mtd
mailing list