What is wrong?

Brian Norris computersforpeace at gmail.com
Wed Feb 26 20:11:48 EST 2014


Hi Leon,

On Wed, Feb 26, 2014 at 04:07:21PM +0200, Leon Pollak wrote:
> I use JFFS2 version 2.2.(NAND)(SUMMARY)(C) 2001-2006 Red Hat, Inc. 
> (comes with MontaVistaPro 5.0). Kernel 2.6.18.
> I prepare JFFS2 partition with mkfs.jffs2 and sumtool and burn it with 
> flash_eraseall and 'nandwrite -p'.
> Everything works fine.
> 
> The NAND is write protected by HW and the partition is mounted as RO. 
> At some moment I need to update a small file. 
> So I do: 
> - HW write protect off, 
> - remount RW, 
> - update file, 
> - sync, 
> - remount RO, 
> - write protect on.
> 
> Looking at linux console I see a lot of messages like:
> Erase at 0x00400000 failed immediately: errno -5
> Erase at 0x003e0000 failed immediately: errno -5
> ......
> Erase at 0x00340000 failed immediately: errno -5
> jffs2_flush_wbuf(): Write failed with -5
> Write of 2016 bytes at 0x002578a0 failed. returned -5, retlen 0
> Not marking the space at 0x002578a0 as dirty because the flash driver 
> returned retlen zero.
> 
> 
> This is repeated for a long time, but everything seems work OK.
> The sequential starts and even file updates are also OK, without error 
> messages.
> 
> What do I do wrong? Thanks a lot.

It's possible you're seeing symptoms of this:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=807612db2f9940b9fa6deaef054eb16d51bd3e00

It seems like maybe JFFS2 is still doing some GC and/or write flushing
after the remount.

Could try this?

 - HW write protect off, 
 - remount RW, 
 - update file, 
 - sync, 
 - remount RO, 
 - sync, <---------- add this, to see if you're experiencing any
                     writeback after remount
 - write protect on.

Brian



More information about the linux-mtd mailing list