I have just checked in changes to yaffs_fs.c, yaffs_guts.c, yaffs_guts.h to
fix this problem.
Now yaffs Objects in the object look up hash table are not freed until the
coresponding inode is cleared.
I did some tests with a smaller bucket size (8) and observed that the
recycling problem does not happen. Object numbers are now only recycled when
the Linux cache tells us it is OK.
This mechanism does not use any new kernel calls and should thus be good with
older kernels.
Thanx to Michael for his efforts in hunting down the problem.
-- Charles