From: charles Date: Thu, 11 Mar 2010 02:44:43 +0000 (+0000) Subject: Update tags when rewriting object header during gc X-Git-Tag: pre-name-change~107 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=8577cce7f27885b7b57fb1e60880d7d2765e0e6a Update tags when rewriting object header during gc --- 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);