cvs commit: src/sys/vfs/hammer hammer.h hammer_blockmap.c hammer_cursor.c hammer_cursor.h hammer_flusher.c hammer_freemap.c hammer_inode.c hammer_ioctl.c hammer_object.c hammer_reblock.c hammer_vnops.c

Matthew Dillon dillon at crater.dragonflybsd.org
Fri May 2 22:30:57 PDT 2008


dillon      2008/05/02 22:28:55 PDT

DragonFly src repository

  Modified files:
    sys/vfs/hammer       hammer.h hammer_blockmap.c 
                         hammer_cursor.c hammer_cursor.h 
                         hammer_flusher.c hammer_freemap.c 
                         hammer_inode.c hammer_ioctl.c 
                         hammer_object.c hammer_reblock.c 
                         hammer_vnops.c 
  Log:
  HAMMER 40D/Many: Inode/link-count sequencer cleanup pass.
  
  * Move the vfsync from the frontend to the backend.  This allows the
    frontend to passively move inodes to the backend without having to
    actually start the flush, greatly improving performance.
  
  * Use an inode lock to deal with directory entry syncing races between
    the frontend and the backend.  It isn't optimal but it's ok for now.
  
  * Massively optimize the backend code by initializing a single cursor
    for an inode and passing the cursor to procedures, instead of having
    each procedure initialize its own cursor.
  
  * Fix a sequencing issue with the backend.  While building the flush
    state for an inode another process could get in and initiate its own
    flush, screwing up the flush group and creating confusion.
    (hmp->flusher_lock)
  
  * Don't lose track of HAMMER_FLUSH_SIGNAL flush requests.  If we get
    such a requet but have to flag a reflush, also flag that the reflush
    is to be signaled (done immediately when the current flush is done).
  
  * Remove shared inode locks from hammer_vnops.c.  Their original purpose
    no longer exists.
  
  * Simplify the arguments passed to numerous procedures (hammer_ip_first(),
    etc).
  
  Revision  Changes    Path
  1.57      +15 -13    src/sys/vfs/hammer/hammer.h
  1.10      +7 -1      src/sys/vfs/hammer/hammer_blockmap.c
  1.23      +63 -9     src/sys/vfs/hammer/hammer_cursor.c
  1.17      +10 -5     src/sys/vfs/hammer/hammer_cursor.h
  1.10      +2 -1      src/sys/vfs/hammer/hammer_flusher.c
  1.8       +0 -3      src/sys/vfs/hammer/hammer_freemap.c
  1.47      +197 -122  src/sys/vfs/hammer/hammer_inode.c
  1.11      +2 -2      src/sys/vfs/hammer/hammer_ioctl.c
  1.51      +200 -196  src/sys/vfs/hammer/hammer_object.c
  1.9       +1 -1      src/sys/vfs/hammer/hammer_reblock.c
  1.45      +52 -90    src/sys/vfs/hammer/hammer_vnops.c


http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer.h.diff?r1=1.56&r2=1.57&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_blockmap.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.c.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_cursor.h.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_flusher.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_freemap.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_inode.c.diff?r1=1.46&r2=1.47&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_ioctl.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_object.c.diff?r1=1.50&r2=1.51&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_reblock.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/vfs/hammer/hammer_vnops.c.diff?r1=1.44&r2=1.45&f=u





More information about the Commits mailing list