
TODO:

Current
 x fs_mkdir appears to be grabbing blocks that are in use - need to
   figure out why - had to fix fs_blkalloc_internal in fs_bits.c to
   use the incore bitmaps instead of ondisk.
 o Make sure that all blocks in an inode get marked cleared when an
   inode is cleared.
 x If a directory is unlinked from pass2 on, make sure that any
   directories that have it as a parent have their
   dir_info->treewalk_parent entries cleared - handled by pass3
   checking if parents inodes are valid in the bitmap
 o If an directory is unlinked from pass2 on, make sure that inodes
   have their link count decremented (this may be difficult - i'll
   have to reread the dirents and decrement the counts for all dirents
   up to the error...).
 x 'Add in UI for interactive mode
 o Check hash of directory name against name given (Would be nice -
   not in old fsck, but can cause problems if it is not verified.)
 x Unstuffed EA blocks have type GFS_METATYPE_ED in 6.1, but
   GFS_METATYPE_EA in 6.0 - handle this.

---

Future
 o internationalization
 o Check GFS special files (quota, resource group index inode, journal
   index inode, license inode?)
 o convert dir_info list to a hash table like the inode_info hash
 o Fix up the bitmap enums and #defines in block_list.[ch]
 o Go through all fxns that have NEEDS_CHECKING in them and verify
   them (and remove NEEDS_CHECKING)
 o Add 'preen' option?
 o Add disk-based bitmaps option in case system doesn't have enough
   memory to handle all the bitmaps
 o currently rgrp bitmaps are loaded into memory on initialization -
   need to see if this is necessary or not - we're using them in pass1
   and again in pass5 - if memory is tight we might be able to free
   them in between
 o Offer exhaustive search capability if superblock or rgs are missing
   or broken that checks block by block for fs info.
 o If we encounter a directory entry in pass2 that points to a block
   marked free, shove it into a queue, and then at the end of pass2,
   clear all results, then rerun from pass1 including the blocks in
   the queue as well as those marked in the RG bitmaps.  With this, we
   can rebuild the entire fs with a valid root inode, it'll just take
   several iterations.

