Hello,
I'm using the yaffs from the CVS repository HEAD against 2.4.20 linux
kernel. The filesystem while mounting has a problem in
yaffs_write_super() function. This function is being called
continuously and makes the kernel to freeze. After making the
following change, i was able to mount the fs but the reads/writes are
not consistent.
diff a/yaffs_fs.c b/yaffs_fs.c
static void yaffs_MarkSuperBlockDirty(void *vsb)
{
struct super_block *sb = (struct super_block *)vsb;
T(YAFFS_TRACE_OS, ("yaffs_MarkSuperBlockDirty() sb = %p\n", sb));
-// if (sb)
-// sb->s_dirt = 1;
+ if (sb)
+ sb->s_dirt = 1;
}
For instance, when a file is created and a few bytes are written
followed by a sync, it gets checkpointed. But the file name is not
showing up when 'ls' is used. Moreover, at times the file names are
corrupted. An unmount/remount reveals that the file indeed does not
gets stored.
Im also trying to understand the design of the FS/GC handling part so
i could use the latest YAFFS from CVS in 2.4+ kernels. It would be
great help if someone could provide directions to where the problem
could be? Or a pointer to latest YAFFS release for 2.4 kernels would
also be helpful.
Regards,
Jon