HAMMER VFS - Make all entry points MPSAFE, remove giant & critical sections
authorMatthew Dillon <dillon@apollo.backplane.com>
Tue, 24 Aug 2010 23:04:59 +0000 (16:04 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Tue, 24 Aug 2010 23:04:59 +0000 (16:04 -0700)
commitb0aab9b9c78ffcdedf2e7c00e9731f069aef3710
tree825e7266c08adab6e2d1f0da8c9a7037ae69fa58
parent8801b30b82e74afb41651e3bf29e7a99fcccecf3
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.
sys/vfs/hammer/hammer.h
sys/vfs/hammer/hammer_blockmap.c
sys/vfs/hammer/hammer_flusher.c
sys/vfs/hammer/hammer_inode.c
sys/vfs/hammer/hammer_io.c
sys/vfs/hammer/hammer_ondisk.c
sys/vfs/hammer/hammer_signal.c
sys/vfs/hammer/hammer_vfsops.c
sys/vfs/hammer/hammer_vnops.c