#define YAFFS_COMPILE_BACKGROUND
#endif
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,28))
+#define YAFFS_COMPILE_EXPORTFS
+#endif
+
+
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19))
#include <linux/config.h>
#endif
#include <linux/interrupt.h>
#include <linux/string.h>
#include <linux/ctype.h>
+
+#ifdef YAFFS_COMPILE_EXPORTFS
#include <linux/exportfs.h>
+#endif
#ifdef YAFFS_COMPILE_BACKGROUND
#include <linux/kthread.h>
up(&(yaffs_DeviceToContext(dev)->grossLock));
}
-
+#ifdef YAFFS_COMPILE_EXPORTFS
static struct inode *
yaffs2_nfs_get_inode(struct super_block *sb, uint64_t ino, uint32_t generation)
{
- return yaffs_iget(sb, ino);
+ return Y_IGET(sb, ino);
}
static struct dentry *
parent_obj = d_obj->parent;
if (parent_obj) {
parent_ino = yaffs_GetObjectInode(parent_obj);
- inode = yaffs_iget(sb, parent_ino);
+ inode = Y_IGET(sb, parent_ino);
if (IS_ERR(inode)) {
parent = ERR_CAST(inode);
return parent;
}
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,9))
/* Just declare a zero structure as a NULL value implies
* using the default functions of expfs.
*/
/* If the directory has changed since the open or last call to
readdir, rewind to after the 2 canned entries. */
-#if 0 /* For exportfs patch */
if (f->f_version != inode->i_version) {
offset = 2;
f->f_pos = offset;
f->f_version = inode->i_version;
}
-#endif
while(sc->nextReturn){
curoffs++;
{
yaffs_Device *dev = yaffs_SuperToDevice(sb);
+ unsigned int oneshot_checkpoint = (yaffs_auto_checkpoint & 4);
+
T(YAFFS_TRACE_OS | YAFFS_TRACE_SYNC,
- ("yaffs_do_sync_fs: %s %s\n",
+ ("yaffs_do_sync_fs: %s %s%s\n",
sb->s_dirt ? "dirty" : "clean",
- do_checkpoint ? "with checkpoint" : "no checkpoint"));
+ do_checkpoint ? "with checkpoint" : "no checkpoint",
+ oneshot_checkpoint ? " one-shot" : "" ));
- if (sb->s_dirt) {
+ if (sb->s_dirt || oneshot_checkpoint) {
yaffs_GrossLock(dev);
yaffs_FlushSuperBlock(sb,do_checkpoint);
yaffs_GrossUnlock(dev);
sb->s_dirt = 0;
+
+ if(oneshot_checkpoint)
+ yaffs_auto_checkpoint &= ~4;
}
return 0;
}
sb->s_op = &yaffs_super_ops;
sb->s_flags |= MS_NOATIME;
-#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,9))
+#ifdef YAFFS_COMPILE_EXPORTFS
sb->s_export_op = &yaffs_export_ops;
#endif