I've had a situation where NAND blocks are being marked bad invalidly due to a HW/driver issue, and I am trying to recover them. I've patched the MTD code to allow bad block erase, and I've the scrounged together a MEMSETGOODBLOCK ioctl patch to allow bad blocks to be unmarked in the BBT. All of this is working: I can erase bad blocks (and verify that data and OOB are all 0xff's), and I can unmark the blocks bad in the BBT. When I have a YAFFS2 filesystem that has bad blocks, I use this sequence to attempt to recover the blocks: (1) unmount the filesystem (2) erase the bad blocks (3) unmark the blocks bad (4) mount the filesystem After this sequence, I have found that I have files in the filesystem that are corrupted or missing, but they were correct before I started the sequence. Is this a valid sequence to use? Are there other steps that I need? Are there inherent issues with re-adding erased blocks back into a yaffs2 filesystem? Thanks, Steve