OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_73_3-52-g0607e8a

Gerrit Code Review gerrit@openafs.org
Thu, 15 Apr 2010 10:40:47 -0700 (PDT)


The following commit has been merged in the master branch:
commit 0607e8a4a19183798c656bf29aaa3f8aa75ac078
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Wed Apr 14 23:21:37 2010 -0400

    Rx: restore thread safety to rx_NewCall
    
    Thread safety in rx_NewCall requires that only one thread be
    actively allocating or recycling a call at a time.  Since we are
    no longer holding the conn_call_lock across the entire transaction
    we need to have another synchronization mechanism.  Add a new
    rx_connection flag, RX_CONN_MAKECALL_ACTIVE, which when set indicates
    that a thread is actively obtaining a call.  If any other threads
    see this flag set, they will wait until being signalled that the
    thread has completed its activity.
    
    In addition, because the call->lock may be dropped when processing
    rxi_ResetCall(), we must hold a reference to the call once we
    begin using it.  Otherwise, the call may be garbage collected
    behind our back.
    
    Change-Id: Ie97757f812d7043203ffcaf399400789cda39da1
    Reviewed-on: http://gerrit.openafs.org/1755
    Reviewed-by: Derrick Brashear <shadow@dementia.org>
    Tested-by: Derrick Brashear <shadow@dementia.org>

 src/rx/rx.c |   41 +++++++++++++++++++++++++++--------------
 src/rx/rx.h |    3 ++-
 2 files changed, 29 insertions(+), 15 deletions(-)

-- 
OpenAFS Master Repository