]> git.michaelhowe.org Git - packages/o/openafs.git/commit
xserver lock order violation
authorDerrick Brashear <shadow@dementix.org>
Tue, 23 Aug 2011 04:20:37 +0000 (00:20 -0400)
committerDerrick Brashear <shadow@dementix.org>
Fri, 16 Dec 2011 11:04:36 +0000 (03:04 -0800)
commitb18653de7ae90491c2e75f4a98410581655d776c
tree5564b2c92c5373d514eb3b1673562c6ec56e80ee
parentf2bf60ed4f1323cd6f74f2f01114f7e4f714db53
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.

Reviewed-on: http://gerrit.openafs.org/5303
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 16dff61e148ce6893a68dda6e05e84f96fa753ac)

Change-Id: I7ca73fe9cf76e9a47cdccfc6cf0e9188fce9f5a6
Reviewed-on: http://gerrit.openafs.org/6309
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/afs/DOC/afs_rwlocks
src/afs/afs_analyze.c
src/afs/afs_cell.c
src/afs/afs_pioctl.c
src/afs/afs_prototypes.h
src/afs/afs_server.c
src/afs/afs_volume.c