OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_4-64-g6082e42

Gerrit Code Review
Thu, 19 Jan 2012 23:03:25 -0800 (PST)

The following commit has been merged in the openafs-devel-1_7_x branch:
commit 6082e42964623222709f4ef5d54583d10dfb16ea
Author: Jeffrey Altman <>
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.
    Reviewed-by: Jeffrey Altman <>
    Tested-by: Jeffrey Altman <>
    (cherry picked from commit 503d09413add1831dff5db24ee907eec59eda9e2)
    Change-Id: I6d4ff712fb612e02fc09ecf8cdc8deefafb9ee12
    Tested-by: BuildBot <>
    Reviewed-by: Jeffrey Altman <>

 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