OpenAFS Master Repository branch, openafs-devel-1_7_x, updated. openafs-devel-1_7_8-11-gebdd5b2

Gerrit Code Review gerrit@openafs.org
Thu, 29 Mar 2012 05:47:45 -0700 (PDT)


The following commit has been merged in the openafs-devel-1_7_x branch:
commit ebdd5b2f46236b7eeab3b146aa85c759d08a44d9
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Mon Mar 26 11:10:36 2012 -0400

    Windows: AFSInvalidateObject can overwrite input param
    
    AFSInvalidateObject() must not be called with an AFSObjectInformationCB
    pointer variable that it is not safe to overwrite as the function sets
    the input value to NULL if the invalidation is going to be performed
    asynchronously in a worker thread.
    
    In AFSEnumerateDirectory(), the following call took place:
    
      AFSInvalidateObject( &pDirNode->ObjectInformation,
                           AFS_INVALIDATE_DATA_VERSION);
    
    which requires a worker thread to process.  As a result, the
    ObjectInformation pointer was being set to NULL which detached the
    AFSObjectInformationCB from the AFSDirectoryCB.  That in turn produced
    an execption in AFSLocateName() which resulted in a resource not being
    freed that in turn produced a deadlock.
    
    Reviewed-on: http://gerrit.openafs.org/6962
    Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    (cherry picked from commit 32ad50bcee9a5b087bea7e0c9c1cfe3d1e58293e)
    
    Change-Id: I8a8c2292f18ddb2f25162e86592a3b51e413bebb
    Reviewed-on: http://gerrit.openafs.org/6982
    Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
    Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>

 src/WINNT/afsrdr/kernel/lib/AFSCommSupport.cpp |   24 ++++++++++++++++++++++--
 src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp     |   16 ++++++++++------
 2 files changed, 32 insertions(+), 8 deletions(-)

-- 
OpenAFS Master Repository