dafs-vnode-locking-20080204
authorTom Keiser <tkeiser@sinenomine.net>
Mon, 4 Feb 2008 18:50:54 +0000 (18:50 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 4 Feb 2008 18:50:54 +0000 (18:50 +0000)
commited25934c1fe96b143715025b49104e75dce9a361
treee33b0d26e00ff86991a397aea36a79efabcc3aaf
parent647bbb509ddf59b80ce9965e89ac13ea26952e0f
dafs-vnode-locking-20080204

LICENSE IPL10
FIXES 84778

* Vnode package concurrency model was overhauled. Unlike the old model,
where concurrency was controlled via reader/writer locks, the new model
uses a per-vnode finite state automata.
* add several new volume states to deal with volume vnode list operations
* a new FSSYNC command code was added to allow volume utilities to close
out a volume operation without causing the fileserver to mount the volume
* a new FSSYNC command code was added to allow volume utilities to
transition a volume into a hard error state
* the salvageserver has been modified to keep volume group partition
path data coherent with the fileserver (like many other parts of the
volume package, this code assumes all members of the group are stored on
the same vice partition)
* make salvageserver correctly handle volume state when a child worker
process terminates abnormally
* update volume pre-attachment code to deal with move volumes across
partitions on the same server
* add volume state sanity checks to more volume package interfaces
* original vos online patch introduced a race condition; rearchitect vos
online/offline to eliminate race condition, and reduce i/o load caused
by operation
* unify duplicate code in volserver related to servicing vos examine and
vos listvol requests
* add doxygen formatted comment blocks to numerous volume package elements
* various updates to fssync-debug to allow dumping vnode state, and
updates to deal with added volume and vnode states
* several 1.5-specific fixes related to fssync and salvsync
19 files changed:
src/viced/host.h
src/vol/Makefile.in
src/vol/daemon_com.c
src/vol/daemon_com.h
src/vol/fssync-client.c
src/vol/fssync-debug.c
src/vol/fssync-server.c
src/vol/fssync.h
src/vol/salvaged.c
src/vol/salvsync-client.c
src/vol/salvsync-server.c
src/vol/salvsync.h
src/vol/vnode.c
src/vol/vnode.h
src/vol/vnode_inline.h [new file with mode: 0644]
src/vol/volume.c
src/vol/volume.h
src/vol/volume_inline.h [new file with mode: 0644]
src/volser/volprocs.c