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

看板DFBSD_commit作者時間15年前 (2010/08/25 07:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit b0aab9b9c78ffcdedf2e7c00e9731f069aef3710 Author: Matthew Dillon <dillon@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
文章代碼(AID): #1CT5PrbT (DFBSD_commit)