YAFFS Todo as at 21/08/2002

Stuff not yet done

  1. Directory locking during directory walk.

  2. Other locking.... investigate what is needed.

  3. Add write memory mapping. We probably need this to support loop mounting.

  4. At scan time, check that the file size in the ObjectHeader matches the filesize of the scanned blocks.

Tools to be done

  1. Dumper and analyser to work off the mtd.

Recently done with no known problems (ie. probably needs significant testing)

  1. ECC and write failure handling.

  2. Added symlinks and hard links to VFS interface.

  3. Fixed problem with persistence. Object header was not being updated at end of write and the file size was getting corrupted.

  4. Fixed problem where obsoleted object headers were not being deleted on NAND. This caused multiple file entries. Looks like it is working properly now.

  5. Read memory mapping. Can now execute a file from yaffs.

  6. We now mark a chunk as deleted by marking the OOB data validity flag. Before this we just stomped on the tags, which was mot such a good thing to do with newer NANDs which do not like this sort of thing.

  1. File pruning is done in reverse order so that if power is lost part-way through, the file does not have any holes.

  1. mkyaffsimage. Tool to make a yaffs image from a directory (in the spirit of mkcramfs).

  2. Added support for special inodes (pipes, character & block devices, sockets).

  3. Added generic read/write support to use page caching. Selectable by configuration of CONFIG_YAFFS_USE_GENERIC_RW.

Done, but currently known to be broken

  1. If you fill yaffs and then try to copy more files into it, you end up with a bunch of objxxx files when you do an ls.

Longer term stuff to do

  1. Discuss improved NAND page interface with mtd group. This has actually started. Luc van Oostenryck is also looking at an alternative layer to mtd.

  2. Pull out all YAFFS_OK and YAFFS_FAIL style errors and return with -ENOMEM style error messages.