Hi Charles. We're changing to mount with skip_checkpt_read=false as you suggest and remove the calls to sync() and see if this makes the filesystem 100% reliable. Let me know if you see anything in the logs or if there are tests we should run on the system. Best, Jens > On 10 Nov 2017, at 05:52, Charles Manning wrote: > > Hello Jens > > On Thu, Nov 9, 2017 at 1:51 AM, Jens Rudberg > wrote: > Hi, > During development of a new embedded platform I have run into an unwanted behaviour by yaffs. > We use yaffs in direct mode on an micron SLC nand with 2k pages and built-in ECC functionality. > It seems like yaffs sometimes roll back the file system when it is mounted, even if there should be no checkpoint available. > We see this by noticing that sometimes after a sudden reboot / crash files are rollbacked to previous versions. > > I was under the impression that the checkpoint is invalidated immediately when a partition is mounted, but this may not be the case? > > No it should be invalidated as soon as there is any modification to the filesystem (modify file/directory, delete file/directory or any garbage collection). If you don't do any modifications the checkpoint will stay "forever". > > > Our current method to avoid this is to call yaffs_sync() after every file operation, which doesn’t seems like the right way to do it. > yaffs_sync() both does a full sync including checkpoint. > replacing the calls to yaffs_sync() with yaffs_sync_files() > > What happens if you don't use any checkpoint. eg. mount with skip_checkpt_read set to 1. > > I will have a look at the log and see if anything stands out. > > Regards > > Charles >