Better retirement and erasure checking.
[yaffs2.git] / yaffs_mtdif2.c
index ee46296964bb47f1cc0ba509d3584eaeb5f55c92..1b917be0ff6f4c289a2298fb0ab51b9c344c301a 100644 (file)
@@ -16,7 +16,7 @@
 /* mtd interface for YAFFS2 */
 
 const char *yaffs_mtdif2_c_version =
-    "$Id: yaffs_mtdif2.c,v 1.8 2005-09-20 05:23:41 charles Exp $";
+    "$Id: yaffs_mtdif2.c,v 1.12 2006-09-21 08:13:59 charles Exp $";
 
 #include "yportenv.h"
 
@@ -90,7 +90,7 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
 
        T(YAFFS_TRACE_MTD,
          (TSTR
-          ("nandmtd2_ReadChunkWithTagsToNAND chunk %d data %p tags %p"
+          ("nandmtd2_ReadChunkWithTagsFromNAND chunk %d data %p tags %p"
            TENDSTR), chunkInNAND, data, tags));
 
        if (data && tags) {
@@ -120,6 +120,9 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
 
        if (tags)
                yaffs_UnpackTags2(tags, &pt);
+       
+       if(tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR)
+               tags->eccResult = YAFFS_ECC_RESULT_UNFIXED;
 
        if (retval == 0)
                return YAFFS_OK;