Hi, all:
My OS is linux 2.6.12 and I check out yaffs from cvs yesterday.
I cut a mtd partition that is 32MB.
/ # df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock/0 32768 1152 31616 4% /mnt/f0
I use "cp command" to fulfill the partition and delete the files. It is ok.
But I write a program that write files(each file is 1MB) into /mnt/f0.
I write files that use below function calls:
open (test_file, O_CREAT | O_WRONLY | O_TRUNC | O_SYNC, 0660)
write (fd, wbuf, KB)
It pops out "Allocator out " at 16th files and the messages is below:
==================================
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
Error: cannot write /mnt/f0//file_16
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
write datayaffs tragedy: no more erased blocks
failed
***!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
Test Failed ***yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
=================================
/ # df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock/0 32768 17524 15244 53% /mnt/f0
/ # ls -l /mnt/f0/
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_1
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_10
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_11
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_12
-rw-r----- 1 0 0 1048576 Mar 10 11:54 file_13
-rw-r----- 1 0 0 1048576 Mar 10 11:54 file_14
-rw-r----- 1 0 0 1048576 Mar 10 11:54 file_15
-rw-r----- 1 0 0 1000448 Mar 10 11:54 file_16
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_2
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_3
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_4
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_5
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_6
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_7
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_8
-rw-r----- 1 0 0 1048576 Mar 10 11:53 file_9
drw-rw-rw- 1 0 0 2048 Mar 10 11:53 lost+found
It still has space on /mnt/f0, It should not pop up this message.
I remove file_1. It is gone. But the free space is the same.
/mnt/f0 # rm file_1
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
yaffs tragedy: no more erased blocks
!!!!!!!!! Allocator out !!!!!!!!!!!!!!!!!
rm: unable to remove `file_1': Unknown error 93
/mnt/f0 # df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/mtdblock/0 32768 17524 15244 53% /mnt/f0
/mnt/f0 # ls
file_10 file_13 file_16 file_4 file_7 lost+found
file_11 file_14 file_2 file_5 file_8
file_12 file_15 file_3 file_6 file_9
/mnt/f0 # cat /proc/yaffs
Device 0 "nand_nda"
startBlock......... 0
endBlock........... 255
totalBytesPerChunk. 2048
nDataBytesPerChunk. 2048
chunkGroupBits..... 0
chunkGroupSize..... 1
nErasedBlocks...... 0
nReservedBlocks.... 5
blocksInCheckpoint. 0
nTnodesCreated..... 700
nFreeTnodes........ 79
nObjectsCreated.... 100
nFreeObjects....... 80
nFreeChunks........ 8198
nPageWrites........ 0
nPageReads......... 0
nBlockErasures..... 0
nGCCopies.......... 6
garbageCollections. 6
passiveGCs......... 0
nRetriedWrites..... 0
nShortOpCaches..... 0
nRetireBlocks...... 0
nDeletedFiles...... 0
nUnlinkedFiles..... 1
nBackgroudDeletions 0
Can someone give me advices?
Thanks in advanced.
Ken.