[Yaffs] bad block problem

Artis Kugevics artis at mikrotik.com
Tue Feb 28 12:45:00 GMT 2006


Hello,

I got similar problems after upgrade to current yaffs version from CVS. 
Following patch fixed my problem:

Index: yaffs_guts.c
===================================================================
--- yaffs_guts.c        (revision 5760)
+++ yaffs_guts.c        (working copy)
@@ -409,6 +409,8 @@
                        /* First check this chunk is erased... */
 #ifndef CONFIG_YAFFS_DISABLE_CHUNK_ERASED_CHECK
                        writeOk = yaffs_CheckChunkErased(dev, chunk);
+#else
+                       writeOk = 1;
 #endif
                        if (!writeOk) {
                                T(YAFFS_TRACE_ERROR,

Best regards
Artis

On Tuesday 28 February 2006 11:35, Fan Lvu wrote:
> Hello All
> I am using ARM(S3C2410) machine with  2.4.18 kernel, yaffs and mtd.  I have
> 2 partitions to store data,  At first, allthings was all right,  but  the
> bad blocks number  had grown incrumently. After 2 or 3 month past, one of
> my partition is full and on more available space left.
>
>
> [root /data0]#df
> Filesystem 1k-blocks Used Available Use% Mounted on
> /dev/mtdblock/4 2032 1836 196 90% /home
> /dev/mtdblock/5 5104 5104 0 100% /data0
> /dev/mtdblock/6 5104 1928 3176 38% /data1
>
> The total size of all  files in direcorty data0 is not more than
> 4.0Mbytes.  And some blocks of this partition is marked bad.
> [root /data0]#more /proc/kmsg
> ...
> <7>block 228 is bad
> <7>block 234 is bad
> <7>block 235 is bad
> <7>block 236 is bad
> <7>block 249 is bad
> <7>block 250 is bad
> <7>block 251 is bad
> <7>block 252 is bad
> <7>block 256 is bad
> <7>block 258 is bad
> <7>block 259 is bad
> <7>block 261 is bad
> <7>block 263 is bad
> <7>block 264 is bad
> <7>block 266 is bad
> <7>block 268 is bad
> <7>block 270 is bad
> <7>block 272 is bad
> <7>block 274 is bad
> <7>block 276 is bad
> <7>block 279 is bad
> --More--
> ....
> ....
>
> My yaffs configuration is here.
> [root /data0]#more /proc/yaffs
> YAFFS built:Oct 16 2003 09:25:52
> $Id: yaffs_fs.c,v 1.26 2003/05/20 23:20:53 charles Exp $
> $Id: yaffs_guts.c,v 1.26 2003/05/20 23:20:53 charles Exp $
>
> Device yaffs
> startBlock......... 1
> endBlock........... 319
> chunkGroupBits..... 0
> chunkGroupSize..... 1
> nErasedBlocks...... 187
> nTnodesCreated..... 200
> nFreeTnodes........ 67
> nObjectsCreated.... 100
> nFreeObjects....... 66
> nFreeChunks........ 6483
> nPageWrites........ 3294
> nPageReads......... 5155
> nBlockErasures..... 51
> nGCCopies.......... 77
> garbageCollections. 51
> passiveGCs......... 51
> nRetriedWrites..... 0
> nRetireBlocks...... 0
> eccFixed........... 0
> eccUnfixed......... 0
> tagsEccFixed....... 0
> tagsEccUnfixed..... 191
> cacheHits.......... 0
> nDeletedFiles...... 18
> nUnlinkedFiles..... 18
> nBackgroudDeletions 0
> useNANDECC......... 1
>
>
> I can regain the bad blocks by using the low level flash utility.  I use
> "vivi" to boot my machine, and the "vivi" has a function to format the
> flash.
> I  wonder why  this happens and how to solve this problem.
>
> Best regards
> Fanlvu



More information about the yaffs mailing list