don't release Volume lightweight ref too early
authorTom Keiser <tkeiser@sinenomine.net>
Wed, 13 Oct 2010 05:10:09 +0000 (01:10 -0400)
committerDerrick Brashear <shadow@dementia.org>
Thu, 14 Oct 2010 04:03:36 +0000 (21:03 -0700)
commita91da7a7b91ce0c4584092cd666eca89d39b8abf
treecda3f729e50f2e40df9e6ebe7648c12787958517
parent0af2b14304d48609e0fcd03cb1dc9526bac2b9f6
don't release Volume lightweight ref too early

FSYNC_com_VolOff was releasing its lightweight ref before the error handling
code for VGetVolumeByVp_r was executed; this code needs to dereference the
Volume pointer for some of its logic.  This was unsafe since
VCancelReservation_r() could have resulted in the Volume object being freed.
Move VCancelReservation_r() below the error handling block.  NB: the error
handling block now relies upon the goto done/deny to cancel its lightweight
ref.

Change-Id: Ic920e45d55f7d1773585a5c0b004c722355b5725
Reviewed-on: http://gerrit.openafs.org/2968
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/vol/fssync-server.c