Estelle HAMMACHE
2004-09-24 16:49:10 UTC
Hello,
here is my test scenario (still with eCos/NAND)
I create a file and write 2KB buffers to it (append)
until the file system is full. Then I close the file
and I unlink it.
When I want to create another file, the "open" returns
an error because no block is found for GC.
Actually most blocks are in the "erasable_pending_wbuf_list"
except 2 free blocks and nextblock.
Here is a patch which seems to correct the problem
(not sure about multi-tasking protection though)
Any comments ?
Bye
Estelle
nodemgmt.c ( $Id: nodemgmt.c,v 1.107 2003/11/26 15:30:58 dwmw2 Exp $ )
121,129c121
< {
< if ((ret == -EIO) && !list_empty(&c->erasable_pending_wbuf_list))
< {
< D1(printk(KERN_DEBUG "jffs2: Flushing write buffer instead of garbage collect\n"));
< jffs2_flush_wbuf_pad(c);
< }
< else
< return ret;
< }
---
the body of a message to ***@axis.com
here is my test scenario (still with eCos/NAND)
I create a file and write 2KB buffers to it (append)
until the file system is full. Then I close the file
and I unlink it.
When I want to create another file, the "open" returns
an error because no block is found for GC.
Actually most blocks are in the "erasable_pending_wbuf_list"
except 2 free blocks and nextblock.
Here is a patch which seems to correct the problem
(not sure about multi-tasking protection though)
Any comments ?
Bye
Estelle
nodemgmt.c ( $Id: nodemgmt.c,v 1.107 2003/11/26 15:30:58 dwmw2 Exp $ )
121,129c121
< {
< if ((ret == -EIO) && !list_empty(&c->erasable_pending_wbuf_list))
< {
< D1(printk(KERN_DEBUG "jffs2: Flushing write buffer instead of garbage collect\n"));
< jffs2_flush_wbuf_pad(c);
< }
< else
< return ret;
< }
---
return ret;
To unsubscribe from this list: send the line "unsubscribe jffs-dev" inthe body of a message to ***@axis.com