[PATCH] [JFFS2] Non-contiguous write bug fix (Sibley)

Alexander Belyakov abelyako at googlemail.com
Thu Apr 19 09:59:51 EDT 2007


On 4/18/07, David Woodhouse <dwmw2 at infradead.org> wrote:
> On Tue, 2007-04-17 at 15:14 +0400, Alexander Belyakov wrote:
> > Yes, the bug still exists. The patch fixes JFFS2 non-contiguous write
> > error on Sibley.
>
> Sorry, I missed (or have forgotten) this. Can you explain in a little
> more detail?

I'm hitting BUG() in jffs2_flash_writev() working with JFFS2 on
Sibley. The issue is 100% reproducible and seems to be critical for
everyone who uses the recent MTD source on Sibley.

The problem was noticed first time after MTD migration from cvs to
git. It seems several pieces of code were cleaned at that time
including wbuf fixup.

There was one unfinished discussion
http://lists.infradead.org/pipermail/linux-mtd/2006-June/016043.html

another corresponding thread is here
http://lists.infradead.org/pipermail/linux-mtd/2006-April/015340.html


> Hm, is this because the cleanmarker size in Sibley is also the wbuf
> size? So you were hitting the BUG() after writing the cleanmarker to a
> newly-erased block (hence setting wbuf_ofs to point there), but then
> moving on to actually _write_ elsewhere?
>
> If that's the case, perhaps the code which writes the cleanmarker
> shouldn't be using jffs2_flash_writev() to write it -- perhaps it should
> be bypassing the wbuf handling altogether?

The idea behind this patch is just to restore working piece of code
(wbuf fixup) now.

But you're probably right and there is another way to fix the problem.
It is worth to think about it.

Thanks,
Alexander




More information about the linux-mtd mailing list