git: hammer2 - xop stabilization - part 2/many
Matthew Dillon
dillon at crater.dragonflybsd.org
Mon Jun 29 23:46:53 PDT 2015
commit e2163f5b586ddc73c26edb8ff227f51c8059fb75
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Mon Jun 29 23:37:20 2015 -0700
hammer2 - xop stabilization - part 2/many
* The xop mechanics do a quorum calculation, and will also do quorum
calculations for the inode cluster (not yet in). This calculation is
primarily based on the bref.modify_tid.
Each backend XOP now needs its own modify_tid to properly distinguish
between and eventually serialize dependent backend ops.
* Implement discrete modify_tid (mtid) reservations in
hammer2_xop_alloc(). Remove the old modify_tid reservation code that only
incremented it on a per-flush basis.
* The flush code will acquire a unique modify_tid which is greater than all
prior modify_tids in stage 2 (after it clears PREFLUSH).
* The hammer2_xop_alloc() code is too messy returning the union structure,
return a void * instead so the caller can just assign it to the correct
sub-union structure.
Summary of changes:
sys/vfs/hammer2/TODO | 3 ++
sys/vfs/hammer2/hammer2.h | 38 ++++++++++--------
sys/vfs/hammer2/hammer2_bulkscan.c | 4 +-
sys/vfs/hammer2/hammer2_chain.c | 55 +++++++++++++------------
sys/vfs/hammer2/hammer2_flush.c | 43 +++++++++++++++-----
sys/vfs/hammer2/hammer2_freemap.c | 32 +++++++++------
sys/vfs/hammer2/hammer2_inode.c | 43 ++++++++++----------
sys/vfs/hammer2/hammer2_ioctl.c | 11 +++--
sys/vfs/hammer2/hammer2_strategy.c | 82 ++++++++++++++++++++------------------
sys/vfs/hammer2/hammer2_thread.c | 44 ++++++++++----------
sys/vfs/hammer2/hammer2_vfsops.c | 15 ++++---
sys/vfs/hammer2/hammer2_vnops.c | 18 ++++-----
sys/vfs/hammer2/hammer2_xops.c | 20 +++++-----
13 files changed, 238 insertions(+), 170 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e2163f5b586ddc73c26edb8ff227f51c8059fb75
--
DragonFly BSD source repository
More information about the Commits
mailing list