one-time
--------
buffers: lru list, dirty list, clean list, empty list
brelse: leave alone, sync or flush
check for bad blocks upon enlarging (Thanks Andrew)
check the fs revision
  - for rev 1 filesystems we need to number each copy of superblock as it
    is written
improve hash func and profile it
journalling (and detect it when opening)
keep the # of dirty buffers in the buffer cache
live on the edge-mode: no syncing, no journaling
make the block and inode relocator cluster moves. yet another pool?
progress indicator hooks?
see whether we discard return values (we shouldnt)
signal handler
when moving metadata: flush each block only once
clean up ext2_do_inode function

watch these
-----------
check if all functions are really used
check if all mallocs are guarded
do syncing here and there
eliminate failure-sensitiveness from critical paths
general code cleanup
profile pool memory usage
resolve all FIXMEs
sanity checks
throw debugging flags out?

misc todo
---------
write some documentation
80-column friendlyness (TODO and source)
regression tests (I do have 4 or 5 tests which I perform before each
	checkin, but....)
coding style
make it work on bigendian systems.
mailing list?

maybe once upon a day
---------------------
look at libext2fs
implement adding/deleting inode table blocks (i.e. changing the # of
	inodes in a filesystem). perhaps make this a separate
	utility. especially the consistency guarantee is hard.
