hello... sir why occur "Partially written block %d detected" ? thank you... I wish ..... as soon as .... let 's send e-mail to me. 1. yaffs filesystem version Info const char *yaffs_guts_c_version = "$Id: yaffs_guts.c,v 1.95 2009/11/11 01:40:41 charles Exp $"; 2. occur point... static int yaffs_ScanBackwards(yaffs_Device *dev) in yaffs_guts.c if (foundChunksInBlock) { /* This is a chunk that was skipped due to failing the erased check */ } else if (c == 0) { /* We're looking at the first chunk in the block so the block is unused */ state = YAFFS_BLOCK_STATE_EMPTY; dev->nErasedBlocks++; } else { if (state == YAFFS_BLOCK_STATE_NEEDS_SCANNING || state == YAFFS_BLOCK_STATE_ALLOCATING) { if (dev->sequenceNumber == bi->sequenceNumber) { /* this is the block being allocated from */ T(YAFFS_TRACE_SCAN, (TSTR (" Allocating from %d %d" TENDSTR), blk, c)); state = YAFFS_BLOCK_STATE_ALLOCATING; dev->allocationBlock = blk; dev->allocationPage = c; dev->allocationBlockFinder = blk; } else { /* This is a partially written block that is not * the current allocation block. This block must have * had a write failure, so set up for retirement. */ /* bi->needsRetiring = 1; ??? TODO */ bi->gcPrioritise = 1; T(YAFFS_TRACE_ALWAYS, (TSTR("Partially written block %d detected" TENDSTR), <<--------- why occur ? blk)); } } } 3. you will know the reason that "Partially written block xx detected". what do occur the reason? and what is slove method?