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

David Woodhouse dwmw2 at infradead.org
Wed Apr 18 11:06:44 EDT 2007


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?

The following condition (SECTOR_ADDR(to) != SECTOR_ADDR(wbuf_ofs)) is
supposed to handle this, surely? In what circumstances is it
insufficient?

As far as I can tell, your new check allows us to write anywhere _after_
writing the first wbuf-load in a new eraseblock.

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?

-- 
dwmw2





More information about the linux-mtd mailing list