  This hashing feature exists to cover over bad design of telldir and NFS 
  cookies which assume that a byte offset into a directory has meaning
  (they claim to abstract this, but this is a deception as they
  allocate a number of bytes appropriate for use of a byte offset not a
  filename) for tracking position of a partial directory read in
  directories.  If you consider for a moment the notion of directories
  shrinking you can see how dumb this system is.

  Reiserfs file system uses a hash function plus a generation counter
  in determining the key used in directory searching.  A filename is
  what we would use if NFS and telldir were not braindead.

  NFS needs to be able to use a 32 (v2) or 64 bit (v3) integer to
  specify where it last read from in a directory (the NFS cookie)
  It seems V4 will be fixing this, hopefully the fix won't get hacked.

  This hash function determines the order of insertions. That can have
  dramatic impact on performance for large directories because it can
  cause a random I/O per filename created.  Let me mention though
  that stem compression is rendered infeasible by hashing.
  
  We recommend the R5_HASH, the other hashes are obsolete, though it
  is conceivable that someone could get some benefit from using tea hash
  for directories large enough that collisions are a problem, but then
  the performance penalty may be severe (e.g. 30x if the directory
  cannot fit into RAM and names that are far from random in their
  order are used).
  
  TEA_HASH allows you to have fewer collisions, and this means that you
  can have directories that are larger.  As a practical matter, users 
  never report r5 is insufficient for applications that are not deliberately 
  designed to make r5 inadequate on current hardware.  r5 is faster 
  for large directories, 30x faster for ones that exceed cache capacity.
  Use r5, teahash is almost, but not quite always, the wrong answer.  

  RUPASOV_HASH:
  Invented by  Yuri Rupasov  while studying the problems of creating 
  directories too large to fit into RAM, but obsoleted by r5 and
  deprecated.

  examples :

  # mkreiserfs /dev/xxxx -h r5
  # mkreiserfs /dev/xxxx -h tea
  # mkreiserfs /dev/xxxx -h rupasov

