]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DEVEL15-dafs-avoid-assert-while-moving-volumes-20080714
authorTom Keiser <tkeiser@sinenomine.net>
Mon, 14 Jul 2008 14:42:30 +0000 (14:42 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 14 Jul 2008 14:42:30 +0000 (14:42 +0000)
commit796a42bae538e46750f9ca2edd4cd9786f6e04e2
tree470dc5aba304041da17df1212cb929ec8ea2287e
parent01134f977d627b52995611a76968782254552a1d
DEVEL15-dafs-avoid-assert-while-moving-volumes-20080714

LICENSE IPL10

The volume state is perfectly consistent. FSYNC_NEEDVOLUME (and the
other state in the pending_vol_op object) is perfectly normal -- it
simply means the volser has exclusive access to the volume for the
purposes of cloning. The bug is that during the DAFS development, I
changed the semantics of the VGetVolume interface without updating the
control logic in afsfileprocs accordingly:

In 1_4_x:
vp->specialstatus != 0 results in returning vp with nUsers incremented
and *ec = vp->sepcialstatus

In DAFS:
V_AttachState(vp) == VOL_STATE_UNATTACHED results in returning a NULL
vp. Since (vp->specialstatus != 0), *ec = vp->specialstatus.

The net result is we need to modify the VBUSY logic in CheckVnode().

(cherry picked from commit 5c762d3b7672a88fcf4df85e919ac11be7946d4f)
src/viced/afsfileprocs.c