OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_73_3-63-g3ad9c55

Gerrit Code Review gerrit@openafs.org
Sat, 17 Apr 2010 07:10:06 -0700 (PDT)


The following commit has been merged in the master branch:
commit 3ad9c5583845986979a25d615a9640770a3bf9f6
Author: Jeffrey Altman <jaltman@your-file-system.com>
Date:   Fri Apr 16 22:42:34 2010 -0400

    Rx: make conn_call_lock and conn_data_lock usage consistent
    
    The rx_connection.flags field is protected by the conn_data_lock
    but the conn_data_lock is not held everywhere the conn flags
    field is altered.  This produces a race that can result in a
    deadlock when waiter flags are inadvertently prevented from being
    cleared.
    
    The conn_call_lock usage in rx_EndCall which was removed in
    Change e169708681eb1bbbb31951b95f68e861a4b01c7e must be restored.
    If rx_EndCall never obtains the conn_call_lock it can't ensure
    that the thread in rx_NewCall actively checking the calls will
    not end up blocking when there is now a call channel that can
    be reused.  This usage of conn_call_lock can be removed only
    if a true producer/consumer model is implemented.
    
    Change-Id: Id093fd6c4a42afb833c775411be0cd406abf4ef7
    Reviewed-on: http://gerrit.openafs.org/1766
    Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
    Tested-by: Jeffrey Altman <jaltman@openafs.org>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>
    Tested-by: Derrick Brashear <shadow@dementia.org>

 src/rx/rx.c |   11 ++++++++++-
 src/rx/rx.h |    2 +-
 2 files changed, 11 insertions(+), 2 deletions(-)

-- 
OpenAFS Master Repository