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