kernel - Add per-mount token to replace mplock.
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 27 Dec 2009 02:12:56 +0000 (18:12 -0800)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 27 Dec 2009 02:12:56 +0000 (18:12 -0800)
commitaac0aabd82a73635c9a3833e2802aa51946e5246
treeb33db861184f04a48866e96150e50c1c33c7f8c9
parente401f5a31d1df077394bdd5d3161fc1b3bd3d537
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().
15 files changed:
sys/conf/files
sys/kern/kern_descrip.c
sys/kern/vfs_conf.c
sys/kern/vfs_init.c
sys/kern/vfs_mount.c
sys/kern/vfs_syscalls.c
sys/kern/vfs_vfsops.c [new file with mode: 0644]
sys/kern/vfs_vnops.c
sys/kern/vfs_vopops.c
sys/sys/mount.h
sys/sys/vfsops.h
sys/sys/vnode.h
sys/vfs/fifofs/fifo_vnops.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_vfsops.c