]> git.michaelhowe.org Git - packages/o/openafs.git/commit
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>
Tue, 26 Oct 2010 00:49:58 +0000 (17:49 -0700)
commitbadfd710f7ae960a7b2e88b2cb80a2ef2aff4c8e
tree4f0690b77d49679b7048ab22bf436f28abb7b3e1
parentfb8a2049e355dc9a4cd6e7264a2d18d61447e2af
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.

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>
(cherry picked from commit a91da7a7b91ce0c4584092cd666eca89d39b8abf)
Change-Id: Ie84351628fd112aa1724180a08dba10f0903a016
Reviewed-on: http://gerrit.openafs.org/3103
src/vol/fssync-server.c