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