*/
const char *yaffs_fs_c_version =
- "$Id: yaffs_fs.c,v 1.82 2009-09-18 00:39:21 charles Exp $";
+ "$Id: yaffs_fs.c,v 1.83 2009-09-23 23:24:55 charles Exp $";
extern const char *yaffs_guts_c_version;
#include <linux/version.h>
yaffs_GrossLock(dev);
- yaffs_FlushFile(obj, 1);
+ yaffs_FlushFile(obj, 1,0);
yaffs_GrossUnlock(dev);
T(YAFFS_TRACE_OS, ("yaffs_sync_object\n"));
yaffs_GrossLock(dev);
- yaffs_FlushFile(obj, 1);
+ yaffs_FlushFile(obj, 1, datasync);
yaffs_GrossUnlock(dev);
return 0;
}
}
+
+static void yaffs_flush_sb_inodes(struct super_block *sb)
+{
+ struct inode *iptr;
+ yaffs_Object *obj;
+
+ list_for_each_entry(iptr,&sb->s_inodes, i_sb_list){
+ obj = yaffs_InodeToObject(iptr);
+ if(obj){
+ T(YAFFS_TRACE_OS, ("flushing obj %d\n",obj->objectId));
+ yaffs_FlushFile(obj,1,0);
+ }
+ }
+}
+
static int yaffs_do_sync_fs(struct super_block *sb)
{
if (dev) {
yaffs_FlushEntireDeviceCache(dev);
+ yaffs_flush_sb_inodes(sb);
yaffs_CheckpointSave(dev);
}