From 8577cce7f27885b7b57fb1e60880d7d2765e0e6a Mon Sep 17 00:00:00 2001 From: charles Date: Thu, 11 Mar 2010 02:44:43 +0000 Subject: [PATCH] Update tags when rewriting object header during gc --- yaffs_guts.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/yaffs_guts.c b/yaffs_guts.c index 1ad630b..7fc606d 100644 --- a/yaffs_guts.c +++ b/yaffs_guts.c @@ -12,7 +12,7 @@ */ const char *yaffs_guts_c_version = - "$Id: yaffs_guts.c,v 1.116 2010-03-09 04:12:00 charles Exp $"; + "$Id: yaffs_guts.c,v 1.117 2010-03-11 02:44:43 charles Exp $"; #include "yportenv.h" #include "yaffs_trace.h" @@ -3342,14 +3342,20 @@ static int yaffs_GarbageCollectBlock(yaffs_Device *dev, int block, yaffs_ObjectHeader *oh; oh = (yaffs_ObjectHeader *)buffer; + oh->isShrink = 0; tags.extraIsShrinkHeader = 0; + oh->shadowsObject = 0; oh->inbandShadowsObject = 0; - if(object->variantType == YAFFS_OBJECT_TYPE_FILE) - oh->fileSize = object->variant.fileVariant.fileSize; tags.extraShadows = 0; + /* Update file size */ + if(object->variantType == YAFFS_OBJECT_TYPE_FILE){ + oh->fileSize = object->variant.fileVariant.fileSize; + tags.extraFileLength = oh->fileSize; + } + yaffs_VerifyObjectHeader(object, oh, &tags, 1); newChunk = yaffs_WriteNewChunkWithTagsToNAND(dev,(__u8 *) oh, &tags, 1); -- 2.30.2