*/
const char *yaffs_guts_c_version =
- "$Id: yaffs_guts.c,v 1.60 2008-10-30 17:58:44 charles Exp $";
+ "$Id: yaffs_guts.c,v 1.61 2008-10-30 18:25:21 charles Exp $";
#include "yportenv.h"
yaffs_VerifyBlock(dev,bi,block);
for (chunkInBlock = 0, oldChunk = block * dev->nChunksPerBlock;
+ retVal == YAFFS_OK &&
chunkInBlock < dev->nChunksPerBlock
&& yaffs_StillSomeChunkBits(dev, block);
chunkInBlock++, oldChunk++) {
}
}
- yaffs_DeleteChunk(dev, oldChunk, markNAND, __LINE__);
+ if(retVal == YAFFS_OK)
+ yaffs_DeleteChunk(dev, oldChunk, markNAND, __LINE__);
}
}
dev->isDoingGC = 0;
- return YAFFS_OK;
+ return retVal;
}
/* New garbage collector
static yaffs_ChunkCache *yaffs_GrabChunkCacheWorker(yaffs_Device * dev)
{
int i;
- int usage;
- int theOne;
if (dev->nShortOpCaches > 0) {
for (i = 0; i < dev->nShortOpCaches; i++) {
if (!dev->srCache[i].object)
return &dev->srCache[i];
}
-
- return NULL;
-
- theOne = -1;
- usage = 0; /* just to stop the compiler grizzling */
-
- for (i = 0; i < dev->nShortOpCaches; i++) {
- if (!dev->srCache[i].dirty &&
- ((dev->srCache[i].lastUse < usage && theOne >= 0) ||
- theOne < 0)) {
- usage = dev->srCache[i].lastUse;
- theOne = i;
- }
- }
-
-
- return theOne >= 0 ? &dev->srCache[theOne] : NULL;
- } else {
- return NULL;
}
+ return NULL;
}
static yaffs_ChunkCache *yaffs_GrabChunkCache(yaffs_Device * dev)