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?