Hi, > > You should find the power fail stuff very robust (ie. zero > > problems). If you > > don't then please shout ***loud***. The rename issue was worked around in application code. The second problem found after 33 power cycles. Symptoms: 1. rename/delete fails: # mv blockno.tmp0 blockno0 mv: unable to rename `blockno.tmp0': Directory not empty # rm blockno0 rm: unable to remove `blockno0': Directory not empty 2. The size of the destination file grew from 18 bytes to 512. # ls -l -rwxr-xr-x 1 root root 18 Jan 1 00:00 blockno.tmp0 -rwxr-xr-x 1 root root 512 Jan 1 00:00 blockno0 First 18 bytes are ok and the rest is filled with zeros: # hexdump blockno0 0000000 6c42 636f 206b 203d 3239 3435 3220 3234 0000010 0a36 0000 0000 0000 0000 0000 0000 0000 0000020 0000 0000 0000 0000 0000 0000 0000 0000 * 0000200 # 3. Filesystem cannot be unmounted: # mount ....... /dev/mtdblock3 on /mnt/flash type yaffs (rw) ....... # umount /mnt/flash/ umount: /mnt/flash: Device or resource busy 4. dmesg reported: ...................... yaffs: dev is 31.3 name is "mtdblock3" yaffs: Attempting MTD mount on 31.3, "mtdblock3" block 2636 is bad block 3664 is bad nand_read_ecc: Failed ECC read, page 0x0002b1be **>>ecc error fix performed on chunk 176574:0 **>>ecc error unfixed on chunk 176574:1 **>>Block 5517 marked for retirement block 7143 is bad eth0: Link now 100-FullDuplex nfs warning: mount version older than kernel **>>ecc error fix performed on chunk 176574:0 **>>ecc error fix performed on chunk 176574:1 **>>Block 5517 marked for retirement .................................. 5. Sometime during testing device developed an extra bad block. I am inclined to believe that it is not really bad since only a few erases were executed. 6. hexdump from /dev/mtd3 produces a lot of: nand_read_ecc: Failed ECC read, page NNN *********************************************************** Additional info: linux 2.6.10 + March 28th 2005 mtd .............. SmartMedia card inserted. NAND device: Manufacturer ID: 0x98, Chip ID: 0x79 (Toshiba NAND 128MiB 3,3V 8-bi t) Scanning device for bad blocks Bad eraseblock 2636 at 0x02930000 Bad eraseblock 3664 at 0x03940000 Bad eraseblock 7143 at 0x06f9c000 Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x00000000-0x08000000 : "Storage" mtd: Giving out device 3 to Storage ............... # cat /proc/yaffs YAFFS built:Apr 20 2005 14:39:45 $Id: yaffs_fs.c,v 1.35 2004/10/20 20:12:43 charles Exp $ $Id: yaffs_guts.c,v 1.37 2004/10/20 20:12:43 charles Exp $ Device yaffs startBlock......... 1 endBlock........... 8191 chunkGroupBits..... 2 chunkGroupSize..... 4 nErasedBlocks...... 7 nTnodesCreated..... 34100 nFreeTnodes........ 50 nObjectsCreated.... 32800 nFreeObjects....... 83 nFreeChunks........ 177913 nPageWrites........ 27 nPageReads......... 67289 nBlockErasures..... 0 nGCCopies.......... 0 garbageCollections. 0 passiveGCs......... 0 nRetriedWrites..... 0 nRetireBlocks...... 0 eccFixed........... 0 eccUnfixed......... 0 tagsEccFixed....... 0 tagsEccUnfixed..... 9 cacheHits.......... 0 nDeletedFiles...... 32702 nUnlinkedFiles..... 32702 nBackgroudDeletions 0 useNANDECC......... 1 # Sergei Sharonov