I have some questions: * Can you plesae redo this using "ls -ial" rather than "ls -l". That will show extra useful info. * Can you please see if there is anything in lost+found * Please show /proc/yaffs before the rm and after the reboot * Does the problem get cleared up by umount and mount? -- CHarles On Tuesday 19 May 2009 22:28:32 Babrian Viktor wrote: > Hi all, > > I experience a strange phenomenon if I do a power cycle during performing > a file removal. It is easily reproduceable (at least using my setup). > I am using a fairly new (on week old or so) version of yaffs2, kernel > version 2.6.26, yaffs_guts.c version: 1.82. > (however I also got the very same results with a somewhat older version) > (note: all other functionality seems to be OK) > > Here is what I do briefly: > - flash_eraseall /dev/mtd13 > - mount as yaffs2 > - creating 2 files (dd if=/dev/zero of=/mnt/file bs=1M count=100) > - removing the second one (interrupted by power cycle) > - reboot, mount > - df, ls show things correctly > - now I re-create the second file > - ls is correct > - df shows much less free space than expected (the usable space is > limited; free space is 'lost') > > > here is what I do exactly: > (flash_erase, mount not included, started from creating the second file) > / $ ls -l /mnt > -rw-r--r-- 1 root root 104857600 Jan 1 00:04 file > drw-rw-rw- 1 root root 2048 Jan 1 00:00 lost+found > / $ df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock5 32768 18184 14584 55% / > tmpfs 63956 0 63956 0% /var/tmp > /dev/mtdblock13 2097152 106372 1990780 5% /mnt > / $ dd if=/dev/zero of=/mnt/file1 bs=1M count=100 > 100+0 records in > 100+0 records out > / $ ls -l /mnt > -rw-r--r-- 1 root root 104857600 Jan 1 00:04 file > -rw-r--r-- 1 root root 104857600 Jan 1 00:05 file1 > drw-rw-rw- 1 root root 2048 Jan 1 00:00 lost+found > / $ df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock5 32768 18184 14584 55% / > tmpfs 63956 0 63956 0% /var/tmp > /dev/mtdblock13 2097152 208900 1888252 10% /mnt > / $ > / $ rm /mnt/file1 > > !!!!!!!! interrupted by power cycle > > //after reboot, mount: (still normal) > / $ ls -l /mnt/ > -rw-r--r-- 1 root root 104857600 Jan 1 00:04 file > drw-rw-rw- 1 root root 2048 Jan 1 00:00 lost+found > / $ df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock5 32768 18120 14648 55% / > tmpfs 63956 0 63956 0% /var/tmp > /dev/mtdblock13 2097152 106372 1990780 5% /mnt > / $ > > // and the strange part: > > / $ dd if=/dev/zero of=/mnt/file1 bs=1M count=100 > ls -l /mnt > df > 100+0 records in > 100+0 records out > / $ ls -l /mnt > -rw-r--r-- 1 root root 104857600 Jan 1 00:05 file > -rw-r--r-- 1 root root 104857600 Jan 1 00:01 file1 > drw-rw-rw- 1 root root 2048 Jan 1 00:00 lost+found > / $ df > Filesystem 1k-blocks Used Available Use% Mounted on > /dev/mtdblock5 32768 18124 14644 55% / > tmpfs 63956 0 63956 0% /var/tmp > /dev/mtdblock13 2097152 742624 1354528 35% /mnt > / $ > > It can be seen that the number of used blocks is very high (without > reason). > > / $ cat /proc/yaffs > YAFFS built:May 19 2009 05:24:47 > $Id: yaffs_fs.c,v 1.79 2009/03/17 01:12:00 wookey Exp $ > $Id: yaffs_guts.c,v 1.82 2009/03/09 04:24:17 charles Exp $ > > Device 0 "MAP" > startBlock......... 0 > endBlock........... 16383 > totalBytesPerChunk. 2048 > nDataBytesPerChunk. 2048 > chunkGroupBits..... 0 > chunkGroupSize..... 1 > nErasedBlocks...... 14764 > nReservedBlocks.... 5 > blocksInCheckpoint. 0 > nTnodesCreated..... 7400 > nFreeTnodes........ 77 > nObjectsCreated.... 200 > nFreeObjects....... 93 > nFreeChunks........ 678095 > nPageWrites........ 0 > nPageReads......... 0 > nBlockErasures..... 695 > nGCCopies.......... 2 > garbageCollections. 4865 > passiveGCs......... 4865 > nRetriedWrites..... 0 > nShortOpCaches..... 10 > nRetireBlocks...... 0 > eccFixed........... 0 > eccUnfixed......... 0 > tagsEccFixed....... 0 > tagsEccUnfixed..... 0 > cacheHits.......... 0 > nDeletedFiles...... 1 > nUnlinkedFiles..... 1 > nBackgroudDeletions 0 > useNANDECC......... 1 > isYaffs2........... 1 > inbandTags......... 0 > / $ > > Note: the same happens with any number of files (including 1) > > > I have searched the net for similar cases but the ones I found are 4 years > old and seemingly solved. > Is the problem familiar to anyone here? > What logs/traces should I make to find the lost blocks? > > Any help is appreciated, > Viktor Babrian > > > > _______________________________________________ > yaffs mailing list > yaffs@lists.aleph1.co.uk > http://lists.aleph1.co.uk/cgi-bin/mailman/listinfo/yaffs