i'm reading the yaffs2's sourcecode,and i'm puzzling about the check point mechnism. 1.in struct yaffs_dev ,it's member checkpt_buffer,it seems storing checkpoint data,and checkpt_byte_offs stores the offset of each check point data.(i'm right?) in funciton write checkpoint to yaffs_dev and read checkpoint from yaffs_dev,after write/read check point data,checkpt_byte_offs always increace, this is why i'm puzzling,can someone tell me why,thank very much. 2.as the checkpoint data is not write to flash immediately,if suddenly the device lost power and the checkpoint has not been synchronized while many successful opeartion has down.then reboot the device ,how does yaffs2 work? use the checkpoint data to recover or scan flash to recover? and how yaffs2 detectes? thanks very much for helping me . forgive my doll.