Changes by: erm (erm at unknown.email)
Date: 2004-08-19 17:33:47 -0700 (Thu, 19 Aug 2004)
Revision: 1839
Log message:

      Fixed a number of show-stopper quality bugs with Cristian's help:
      --Large number of files => massive weirdness:
          I wasn't closing the directory handle in the ML mirrorfs read_dir
          function.
      --All writes start at position zero, regardless of syscall parameters:
          There was no code in the uservfs module to increase the file pointer on
          a write file op.
      --Directory listings return only a fraction of the present files:
          A line (module/uservfs_dir.c:142) was missing to decrement the index...
          It makes more sense--sort of--if you look at the code.
      
      Still problematic:
      --I've had two kernel panics during testing.  They've both been in kernel
        code not related at all to the modules (scheduler and an illegal operation
        in an interrupt) which makes me suspect a race condition knocking around
        somewhere in the uml code, but I really don't know.
      --Speed?  I haven't run any tests at all, but it's not going to win any
        awards.  Turning off the huge amount of debugging spew helps, though.
      --Symlinks still don't work.  Symlinks really should work on a production
        filesystem, but for development and testing, not such a big deal.  Dunno
        about hard links yet, but I don't know why they wouldn't work.
      --There are random oddnesses about the root inode permissions that I don't
        comprehend in the least.  That's not important at all, though--we work
        inside a subdir of the root always, and we're fine there.
      

Changes  Path
+2 -1 mojavefs-branches/erm/src/uservfs/old/OMakefile
+10 -5 mojavefs-branches/erm/src/uservfs/old/module/OMakefile
+4 -0 mojavefs-branches/erm/src/uservfs/old/module/uservfs_debug.h
+7 -0 mojavefs-branches/erm/src/uservfs/old/module/uservfs_dev.c
+10 -3 mojavefs-branches/erm/src/uservfs/old/module/uservfs_dir.c
+11 -4 mojavefs-branches/erm/src/uservfs/old/module/uservfs_file.c
+9 -0 mojavefs-branches/erm/src/uservfs/old/module/uservfs_link.c
+0 -14 mojavefs-branches/erm/src/uservfs/old/module/uservfs_rpc.c
+14 -7 mojavefs-branches/erm/src/uservfs/old/servers/dufs/clib/ml_uservfs.c
+2 -0 mojavefs-branches/erm/src/uservfs/old/servers/dufs/fs/abstractfs.mli
+12 -109 mojavefs-branches/erm/src/uservfs/old/servers/mirror/mirror.c
+2 -1 mojavefs-branches/erm/src/uservfs/old/servers/umfs/main/main.ml
+19 -16 mojavefs-branches/erm/src/uservfs/old/servers/umfs/main/server.ml