OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_76-2109-g503d094

Gerrit Code Review gerrit@openafs.org
Wed, 18 Jan 2012 15:17:24 -0800 (PST)


The following commit has been merged in the master branch:
commit 503d09413add1831dff5db24ee907eec59eda9e2
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Sat Jan 14 10:32:51 2012 -0500

    Windows: cm_EndCallbackGrantingCall refactoring
    
    Refactor cm_EndCallbackGrantingCall to prevent assigning a
    callback to the cm_scache object in the case where it is going
    to be discarded.  If the race was lost the callback data was
    already discarded by cm_RevokeCallback.  By assigning and then
    discarding we are forced to issue an additional change notification
    to the smb client or afs redirector.  Not only is this extra work
    but the afs redirector notification can result in a deadlock with
    a kernel thread that is waiting for the current thread to complete.
    
    modify the function signature to return whether or not a race
    was lost with a callback revocation.
    
    rename 'freeFlag' to 'freeRacingRevokes' since that is what
    the flag is meant to indicate.
    
    create a new 'freeServer' flag to indicate when the server
    reference should be released.  There was a leak of server
    references when a race occurred.
    
    modify all calls to cm_EndCallbackGrantingCall() that provide
    an AFSCallBack structure on input to check for a lost race.
    If a race occurs, cm_MergeStatus() should not be performed.
    
    Change-Id: Ib17091ed51a24826bf84d33235125b3ccbbe47d4
    Reviewed-on: http://gerrit.openafs.org/6556
    Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

 src/WINNT/afsd/cm_callback.c |  108 +++++++++++++++++++++++-------------------
 src/WINNT/afsd/cm_callback.h |    2 +-
 src/WINNT/afsd/cm_conn.c     |    2 -
 src/WINNT/afsd/cm_vnodeops.c |   32 +++++++-----
 4 files changed, 80 insertions(+), 64 deletions(-)

-- 
OpenAFS Master Repository