* Linux fs/JFFS2 question.
@ 2007-02-16 12:37 Glen Johnson
0 siblings, 0 replies; only message in thread
From: Glen Johnson @ 2007-02-16 12:37 UTC (permalink / raw)
To: linux-mtd
Linux-mtd,
I need some help understanding some code under linux-2.6.x/fs/jffs2.
After trying to mount a JFFS2 file system, by typing mount mtd:JFFS2
/mnt, without success. I did some digging in the code, and I found if I
change a line in linux-2.6.x/fs/jffs2/scan.c mount works! Listed below
is the one change I made in function jffs2_scan_medium().
if (!ret && pointlen < c->mtd->size) { OLD code
if (!ret && pointlen <= c->mtd->size) { NEW code
Later in the function the side effect of this if() statement is an
altered value for buf_size, not 0. This value is then passed to the
function jffs2_scan_eraseblock() where buf_size is tested. Here is
where my understanding of things falls apart.
if (!buf_size) {
/* Do stuff, but do NOT read anything from the flash. */
...
} else {
...
jffs2_fill_scan_buf( ...);
}
It appears to me if buf_size is prevented from being set back in
jffs2_scan_medium() then an actual read from the flash does occur, which
allows mount to read valid data and have success. Otherwise there
appears to me that the read never made, creating a guaranteed failure every time.
Why is this the case?
I can't find where or how the driver ever reads real data otherwise.
Help me see the bigger picture here.
I first sent this to uClinux-devel mailing list so I provided the following info to help describe the context in which I am working.
uClinux source: uClinux-dist-20060803
tool chain: m68k-uclinux-tools-20060615.sh
processor: COLDFIRE M5272
Looking forward to being enlightened,
Glen Johnson
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-02-16 12:37 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-16 12:37 Linux fs/JFFS2 question Glen Johnson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox