All of lore.kernel.org
 help / color / mirror / Atom feed
* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.