changeset 64:f42d4eba1325

More stuff to fix shrinkHeader handling problem
author charles <charles>
date Tue, 02 Aug 2005 04:24:22 +0000
parents 1f8272ade610
children dfb2a2e863b4
files yaffs_guts.c
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/yaffs_guts.c
+++ b/yaffs_guts.c
@@ -13,7 +13,7 @@
  */
  //yaffs_guts.c
 
-const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.14 2005-08-01 23:36:56 charles Exp $";
+const char *yaffs_guts_c_version="$Id: yaffs_guts.c,v 1.15 2005-08-02 04:24:22 charles Exp $";
 
 #include "yportenv.h"
 
@@ -2517,6 +2517,18 @@ static int  yaffs_GarbageCollectBlock(ya
 				tags.serialNumber++;
 
 				dev->nGCCopies++;
+				
+				if(tags.chunkId == 0)
+				{
+					// It is an object Id,
+					// We need to nuke the shrinkheader flags first
+					// We no longer want the shrinkHeader flag since its work is done
+					// and if it is left in place it will mess up scanning.
+					
+					yaffs_ObjectHeader *oh = (yaffs_ObjectHeader *)buffer;
+					oh->isShrink = 0;
+					tags.extraIsShrinkHeader = 0;
+				}
 
 				newChunk = yaffs_WriteNewChunkWithTagsToNAND(dev, buffer, &tags,1);