We're testing YAFFS on a simulated NAND device under extreme conditions
(heavy filesystem use and unreasonable numbers of simulated bad blocks
developing). Everything seems pretty stable, by and large; now I want to add
a heuristic to our FS test code which would recognise that the filesystem
was essentially unusable and stop hitting it.
I thought I could do this by noticing that my write had failed then calling
into yaffs_CountFreeChunks() and checking whether the answer was zero.
However, I'm getting widely variable responses, sometimes as many as 9000
supposedly-free chunks on a 32768 chunk device, even though the filesystem
is completely paralysed (1017/1024 blocks retired, reads and writes are
failing and being correctly mapped to EIO in our filesystem layer).
How is CountFreeChunks supposed to interact with blocks going bad?
Ross
--
Embedded Software Engineer, eCosCentric Limited.
Barnwell House, Barnwell Drive, Cambridge CB5 8UU, UK.
Registered in England no. 4422071. www.ecoscentric.com