X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=rtems%2Frtems_yaffs.c;h=461132074baf6d004212c98b4b99de591a5b3158;hp=6e018aa7746606211c110c57438fbca46a26dfc6;hb=5af18695480b470eea2a2447a1c5211073b9c59b;hpb=a09dd844ec578bb45ea78201d70f3353aaa4815e diff --git a/rtems/rtems_yaffs.c b/rtems/rtems_yaffs.c index 6e018aa..4611320 100644 --- a/rtems/rtems_yaffs.c +++ b/rtems/rtems_yaffs.c @@ -641,6 +641,7 @@ static void ryfs_fsunmount(rtems_filesystem_mount_table_entry_t *mt_entry) ylock(dev); yaffs_flush_whole_cache(dev, 1); + yaffs_checkpoint_save(dev); yaffs_deinitialise(dev); yunlock(dev); rtems_yaffs_os_unmount(dev); @@ -683,14 +684,6 @@ static int ryfs_symlink(const rtems_filesystem_location_info_t *parent_loc, geteuid(), getegid(), target); if (created_link != NULL) { - // In RTEMS VFS, there is no filesytem-wide sync(), only per-file - // flushes. Filesystem-wide sync is implemented by looping over all of - // the open files and individually fsync()ing them. That's part of why - // every close() in RTEMS-yaffs is accompanied by an implicit fsync(). - // There is no such close() call associated with the symlink's creation, - // since it wasn't created via open(). Therefore, flush it immediately - // instead. - yaffs_flush_file(created_link, 0, 0, 0); ret = 0; } else { errno = EINVAL;