OpenAFS Master Repository branch, master, updated. BP--openafs-stable-1_6_x-1578-g16dff61
Gerrit Code Review
gerrit@openafs.org
Wed, 31 Aug 2011 11:38:43 -0700 (PDT)
The following commit has been merged in the master branch:
commit 16dff61e148ce6893a68dda6e05e84f96fa753ac
Author: Derrick Brashear <shadow@dementix.org>
Date: Tue Aug 23 00:20:37 2011 -0400
xserver lock order violation
individual volume locks are pretty far down, well after afs_xserver.
afs_SetupVolume (with tv->lock)-> InstallUVolumeEntry-> afs_GetServer.
Install*Volume is careful to protect against recursing into the volume
lock via ResetVolumeInfo. Unfortunately, GetServer acquires xserver,
and then if it needs to call GetCapabilities, it drops and reacquires
xserver.
turns out the volume locks weren't protecting much. they also aren't
grabbed before xvolume is dropped. fine, so, restructure to do all the
work, then merge the result.
Change-Id: I648900849a5a7349adc686658872706bd7024c90
Reviewed-on: http://gerrit.openafs.org/5303
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/afs/DOC/afs_rwlocks | 4 +
src/afs/afs_analyze.c | 7 +-
src/afs/afs_cell.c | 2 +-
src/afs/afs_pioctl.c | 2 +-
src/afs/afs_prototypes.h | 20 +++---
src/afs/afs_server.c | 55 ++++++++++----
src/afs/afs_volume.c | 185 ++++++++++++++++++++++++----------------------
7 files changed, 155 insertions(+), 120 deletions(-)
--
OpenAFS Master Repository