1. When written bytes are appended to the end of file, there's no need to read the correspoding chunks. The overhead is unnecessary and was especially large before yaffs_guts.c version 1.89. 2. In yaffs_ReadChunkDataFromObject, the condition should be changed: static int yaffs_ReadChunkDataFromObject(yaffs_Object *in, int chunkInInode, __u8 *buffer) { int chunkInNAND = yaffs_FindChunkInFile(in, chunkInInode, NULL); - if (chunkInNAND >= 0) + if (chunkInNAND > 0) return yaffs_ReadChunkWithTagsFromNAND(in->myDev, chunkInNAND, buffer, NULL); else { T(YAFFS_TRACE_NANDACCESS, (TSTR("Chunk %d not found zero instead" TENDSTR), chunkInNAND)); /* get sane (zero) data if you read a hole */ memset(buffer, 0, in->myDev->nDataBytesPerChunk); return 0; } -- Regards, Shizheng