projects
/
yaffs2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c08b679
)
Handle unfixed ecc errors better when scanning
author
charles
<charles>
Fri, 16 Jan 2009 00:44:45 +0000
(
00:44
+0000)
committer
charles
<charles>
Fri, 16 Jan 2009 00:44:45 +0000
(
00:44
+0000)
yaffs_guts.c
patch
|
blob
|
history
diff --git
a/yaffs_guts.c
b/yaffs_guts.c
index 5aca0d2a3350897727ce7c6d4314a81129ea0689..76074cd51d8b689363a17fcb9a944f6d9af5bf0f 100644
(file)
--- a/
yaffs_guts.c
+++ b/
yaffs_guts.c
@@
-11,8
+11,9
@@
* published by the Free Software Foundation.
*/
* published by the Free Software Foundation.
*/
+
const char *yaffs_guts_c_version =
const char *yaffs_guts_c_version =
- "$Id: yaffs_guts.c,v 1.7
1 2009-01-12 00:53:47
charles Exp $";
+ "$Id: yaffs_guts.c,v 1.7
2 2009-01-16 00:44:45
charles Exp $";
#include "yportenv.h"
#include "yportenv.h"
@@
-4363,7
+4364,6
@@
static int yaffs_CheckpointTnodeWorker(yaffs_Object * in, yaffs_Tnode * tn,
}
} else if (level == 0) {
__u32 baseOffset = chunkOffset << YAFFS_TNODES_LEVEL0_BITS;
}
} else if (level == 0) {
__u32 baseOffset = chunkOffset << YAFFS_TNODES_LEVEL0_BITS;
- /* printf("write tnode at %d\n",baseOffset); */
ok = (yaffs_CheckpointWrite(dev,&baseOffset,sizeof(baseOffset)) == sizeof(baseOffset));
if(ok)
ok = (yaffs_CheckpointWrite(dev,tn,tnodeSize) == tnodeSize);
ok = (yaffs_CheckpointWrite(dev,&baseOffset,sizeof(baseOffset)) == sizeof(baseOffset));
if(ok)
ok = (yaffs_CheckpointWrite(dev,tn,tnodeSize) == tnodeSize);
@@
-4412,7
+4412,6
@@
static int yaffs_ReadCheckpointTnodes(yaffs_Object *obj)
/* Read level 0 tnode */
/* Read level 0 tnode */
- /* printf("read tnode at %d\n",baseChunk); */
tn = yaffs_GetTnodeRaw(dev);
if(tn)
ok = (yaffs_CheckpointRead(dev,tn,tnodeSize) == tnodeSize);
tn = yaffs_GetTnodeRaw(dev);
if(tn)
ok = (yaffs_CheckpointRead(dev,tn,tnodeSize) == tnodeSize);
@@
-6286,7
+6285,11
@@
static int yaffs_ScanBackwards(yaffs_Device * dev)
dev->nFreeChunks++;
dev->nFreeChunks++;
- } else if (tags.chunkId > 0) {
+ } else if (tags.eccResult == YAFFS_ECC_RESULT_UNFIXED){
+ printf("Error in ECC\n");
+ /* Don't actually delete because the chunk is not yet set up as being in use */
+ /* yaffs_DeleteChunk(dev, chunk, 1, __LINE__); */
+ }else if (tags.chunkId > 0) {
/* chunkId > 0 so it is a data chunk... */
unsigned int endpos;
__u32 chunkBase =
/* chunkId > 0 so it is a data chunk... */
unsigned int endpos;
__u32 chunkBase =