DragonFly BSD
DragonFly commits List (threaded) for 2009-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - Add per-mount token to replace mplock.


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 26 Dec 2009 20:57:23 -0800 (PST)

commit aac0aabd82a73635c9a3833e2802aa51946e5246
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sat Dec 26 18:12:56 2009 -0800

    kernel - Add per-mount token to replace mplock.
    
    * Fix issues with dupfdopen() not being MPSAFE.
    
    * Implement a dummy mount structure for devfs-synthesized vnodes prior
      to the root mount.
    
    * Wrap all VFS_*() calls, including vfs_init() and vfs_uninit(), to
      acquire the per-mount token if not flagged as being MPSAFE.
    
    * Wrap all VOP_*() calls to acquire the per-mount token if not flagged
      as being MPSAFE.
    
    * Move VOP_READ/VOP_WRITE MPSAFE flags to the mount structure.
    
    * Make fifoops MPSAFE (so HAMMER can flag read & write as being
      MPSAFE generally).
    
    * The VFS code currently also acquires the MP lock when not MPSAFE
      (there are things called by VFSes which are not yet MPSAFE), except
      for read() and write().

Summary of changes:
 sys/conf/files                 |    1 +
 sys/kern/kern_descrip.c        |   13 +-
 sys/kern/vfs_conf.c            |    7 +-
 sys/kern/vfs_init.c            |    5 +-
 sys/kern/vfs_mount.c           |   35 +++-
 sys/kern/vfs_syscalls.c        |   14 +-
 sys/kern/vfs_vfsops.c          |  330 ++++++++++++++++++++++++++++++++++++
 sys/kern/vfs_vnops.c           |   43 +----
 sys/kern/vfs_vopops.c          |  364 ++++++++++++++++++++++++++++++++++++++--
 sys/sys/mount.h                |   79 +++++++--
 sys/sys/vfsops.h               |    6 +-
 sys/sys/vnode.h                |   11 +-
 sys/vfs/fifofs/fifo_vnops.c    |   85 +++++++---
 sys/vfs/hammer/hammer_inode.c  |    5 -
 sys/vfs/hammer/hammer_vfsops.c |   12 ++
 15 files changed, 886 insertions(+), 124 deletions(-)
 create mode 100644 sys/kern/vfs_vfsops.c

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


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]