git: HAMMER VFS - Make all entry points MPSAFE, remove giant & critical sections

Matthew Dillon dillon at crater.dragonflybsd.org
Tue Aug 24 16:11:47 PDT 2010


commit b0aab9b9c78ffcdedf2e7c00e9731f069aef3710
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Tue Aug 24 16:04:59 2010 -0700

    HAMMER VFS - Make all entry points MPSAFE, remove giant & critical sections
    
    * All VFS, VOP, ioops, and bio_done entry points are now mpsafe and no
      longer use giant.
    
    * Implement hmp->fs_token and hmp->io_token for each HAMMER mount.
    
      All operations that previously needed the MP lock now use hmp->fs_token.
      All operations that interact with BIO callbacks now use hmp->io_token.
      All critical sections now use io_token (these previously interlocked
      against IO callbacks).
    
      NOTE: read (for cached data) and getattr were MPSAFE before and
    	continue to be MPSAFE.

Summary of changes:
 sys/vfs/hammer/hammer.h          |    7 +-
 sys/vfs/hammer/hammer_blockmap.c |    2 +
 sys/vfs/hammer/hammer_flusher.c  |   15 ++-
 sys/vfs/hammer/hammer_inode.c    |    8 +-
 sys/vfs/hammer/hammer_io.c       |  191 +++++++++++++++++++++++--------
 sys/vfs/hammer/hammer_ondisk.c   |   29 +++--
 sys/vfs/hammer/hammer_signal.c   |    5 +
 sys/vfs/hammer/hammer_vfsops.c   |   82 ++++++++++----
 sys/vfs/hammer/hammer_vnops.c    |  231 +++++++++++++++++++++++++++-----------
 9 files changed, 412 insertions(+), 158 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/b0aab9b9c78ffcdedf2e7c00e9731f069aef3710


-- 
DragonFly BSD source repository





More information about the Commits mailing list