Question regading Cleanmarker.

Nikhil nikhils at
Fri Jan 13 09:56:07 EST 2006

Hi all,

I am analysing the jffs2 methodology for updating the flash memory. I
understand that the jffs2_sb_info maintains three list i.e free_list,
clean_list and dirty_list.

the garbage collector acts on the blocks on the dirty_list and on erasing
those blocks writes a CLEANMARKER to the first 12 bytes indicating
succesful erase and move the block from dirty_list to free_list.

So all the blocks in the free_list are empty with first twelve bytes
having a CLEANMARKER. Whenever some node has to be written on the flash, a
block from the free_list is picked and written.

whether it will overwrite the CLEANMARKER bytes... if so then it has to
perform erase of the whole block again...

else the block is appended after the CLEANMARKER bytes... if so, then
after some time when this block moves from clean_list to dirty_list (by
some updations on the file data or else) how will the garbage collector
identify the block as clean/unclean as the the CLEANMARKER will be

whether the garbage collector neglects this CLEANMARKER when is it getting
updated or removed? else after some point of time, all the eraseblocks
will have a CLEANMARKER which will defeat the basic purpose of having a
there is one more query about delayed write. What is the size of the
buffer which gets written on the flash? is it the page size or the erase
block size or is it a function of time?

Can you help in clearing my doubt?

Thanks & Regards

Nikhil Shirodkar
Project Engineer

More information about the linux-mtd mailing list