Hi I am testing YAFFS with the direct implementation on my hardware. All work well until I tried following code. for (j=0; j<2; j++) { h = yaffs_open("/flash/yaffs1", O_CREAT | O_RDWR | O_TRUNC, S_IREAD | S_IWRITE); if (0 <= h) { if (200 == yaffs_write(h, buffer, 200)) { if (0 == yaffs_close(h)) { yaffs_unmount("/flash"); yaffs_mount("/flash"); if (0 == yaffs_rename("/flash/yaffs1", "/flash/yaffs2")) { if (0 == yaffs_unlink("/flash/yaffs2")) { /* OK */ diag_printf("round %d is OK\n", j); } else { diag_printf("unlink error\n"); } } else { diag_printf("rename error\n"); } } else { diag_printf("close error\n"); } } else { diag_printf("write error\n"); } } else { diag_printf("open error\n"); } } For (j==0) the loop works well and no file called /flash/yaffs1 or /flash/yaffs2 is available at the end. For (j==1) the procedure fails at the function yaffs_rename("/flash/yaffs1", "/flash/yaffs2") with the return value '-1'. If I list the directory "/flash", I see two files called "/flash/yaffs1" and "/flash/yaffs2" !!! Disabling the procedures 'yaffs_unmount("/flash")' and 'yaffs_mount("/flash")' will fix the problem! Does anybody know such a file-problem of unmounting and remounting a YAFFS partition during normal operation? (of course in normal operation a YAFFS partition is mounting at the beginning and unmounting at the end of an application). Thanks in advance, Beat Morf