Permalink
Browse files

Implemented data synchronization.

  • Loading branch information...
1 parent 05a982c commit 5e960a990b062988ce2fb1dc883baff2292c618e @sebhub sebhub committed Sep 7, 2011
Showing with 18 additions and 2 deletions.
  1. +18 −2 rtems/rtems_yaffs.c
View
@@ -20,7 +20,7 @@
*/
#include <rtems.h>
-#include <rtems/libio.h>
+#include <rtems/libio_.h>
#include <rtems/seterr.h>
#include <rtems/userenv.h>
#include <errno.h>
@@ -633,7 +633,23 @@ static int ycb_fchmod(rtems_filesystem_location_info_t *loc, mode_t mode)
static int ycb_fdatasync(rtems_libio_t *iop)
{
- return 0;
+ const rtems_filesystem_location_info_t *pathinfo = &iop->pathinfo;
+ struct yaffs_obj *obj = pathinfo->node_access;
+ struct yaffs_dev *dev = obj->my_dev;
+ int yc = YAFFS_OK;
+
+ ylock(dev);
+ yc = yaffs_flush_file(obj, 0, 1);
+ if (rtems_filesystem_is_root_location(pathinfo)) {
+ yaffs_flush_whole_cache(dev);
+ }
+ yunlock(dev);
+
+ if (yc == YAFFS_OK) {
+ return 0;
+ } else {
+ rtems_set_errno_and_return_minus_one(EIO);
+ }
}
static int ycb_dir_rmnod(rtems_filesystem_location_info_t *parent_loc, rtems_filesystem_location_info_t *pathloc)

0 comments on commit 5e960a9

Please sign in to comment.