OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-4494-g4103aee

Gerrit Code Review gerrit@openafs.org
Tue, 2 Dec 2014 17:57:21 -0500


The following commit has been merged in the master branch:
commit 4103aee514615c46e919202fb7842b9b2e254ff9
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Tue Oct 14 13:17:27 2014 -0500

    ubik: Unlock version lock before udisk_end
    
    Currently, BeginTrans calls udisk_end with UBIK_VERSION_LOCK held when
    it gets an error from DISK_Begin. However, udisk_end itself acquires
    UBIK_VERSION_LOCK to update the database flags, so this causes a
    deadlock.
    
    So, unlock UBIK_VERSION_LOCK before calling udisk_end. Also unlock it
    before calling DISK_Abort, udisk_abort, and DISK_Begin, as well, since
    none of those modify fields protected by UBIK_VERSION_LOCK. (Any read
    access is allowed because we DBHOLD the database.) This commit unlocks
    the lock immediately after we are done modifying versioning
    information, which is right after we change writeTidCounter for write
    transactions.
    
    Change-Id: I31343d67c82734ff88b76bec740ef16767bb9667
    Reviewed-on: http://gerrit.openafs.org/11541
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>

 src/ubik/ubik.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

-- 
OpenAFS Master Repository