[Yaffs] Avoid tagsEccUnfixed stats bump on mounting partiallyusedblock

Marty Fouts palmlinux at gmail.com
Tue Nov 29 20:56:28 GMT 2005


Applied to CVS just now.

Marty
-----Original Message-----
From: yaffs-bounces at stoneboat.aleph1.co.uk
[mailto:yaffs-bounces at stoneboat.aleph1.co.uk]On Behalf Of Martin Fouts
Sent: Thursday, November 17, 2005 11:53 PM
To: Todd Poynor; yaffs at stoneboat.aleph1.co.uk
Subject: RE: [Yaffs] Avoid tagsEccUnfixed stats bump on mounting
partiallyusedblock


Thanks.  I've added the patch to my queue.

marty 

> -----Original Message-----
> From: yaffs-bounces at stoneboat.aleph1.co.uk 
> [mailto:yaffs-bounces at stoneboat.aleph1.co.uk] On Behalf Of Todd Poynor
> Sent: Thursday, November 17, 2005 8:10 PM
> To: yaffs at stoneboat.aleph1.co.uk
> Subject: [Yaffs] Avoid tagsEccUnfixed stats bump on mounting 
> partially usedblock
> 
> IIUC, yaffs1 compatibility mode checks tags ECCs and updates 
> stats on tags ECC errors when scanning an unused chunk of a 
> partially-allocated block at mount time.  This causes a 
> mildly alarming "tagsEccUnfixed..... 1" in /proc/yaffs.  
> Suggested fix below.
> 
> Signed-off-by: Todd Poynor <tpoynor at mvista.com>
> 
> Index: yaffs_tagscompat.c
> ===================================================================
> RCS file: /home/aleph1/cvs/yaffs2/yaffs_tagscompat.c,v
> retrieving revision 1.7
> diff -u -r1.7 yaffs_tagscompat.c
> --- yaffs_tagscompat.c	20 Sep 2005 23:12:38 -0000	1.7
> +++ yaffs_tagscompat.c	18 Nov 2005 04:03:47 -0000
> @@ -455,20 +455,22 @@
>  			int deleted =
>  			    (yaffs_CountBits(spare.pageStatus) 
> < 7) ? 1 : 0;
>  
> -			yaffs_GetTagsFromSpare(dev, &spare, &tags);
> -
>  			eTags->chunkDeleted = deleted;
> -			eTags->objectId = tags.objectId;
> -			eTags->chunkId = tags.chunkId;
> -			eTags->byteCount = tags.byteCount;
> -			eTags->serialNumber = tags.serialNumber;
>  			eTags->eccResult = eccResult;
>  			eTags->blockBad = 0;	/* We're reading it */
>  			/* therefore it is not a bad block */
> -
>  			eTags->chunkUsed =
>  			    (memcmp(&spareFF, &spare, 
> sizeof(spareFF)) !=
>  			     0) ? 1 : 0;
> +
> +			if (eTags->chunkUsed) {
> +				yaffs_GetTagsFromSpare(dev, 
> &spare, &tags);
> +
> +				eTags->objectId = tags.objectId;
> +				eTags->chunkId = tags.chunkId;
> +				eTags->byteCount = tags.byteCount;
> +				eTags->serialNumber = tags.serialNumber;
> +			}
>  		}
>  
>  		return YAFFS_OK;
> 
> _______________________________________________
> yaffs mailing list
> yaffs at stoneboat.aleph1.co.uk
> http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs
> 

_______________________________________________
yaffs mailing list
yaffs at stoneboat.aleph1.co.uk
http://stoneboat.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs



More information about the yaffs mailing list