The following commit has been merged in the master branch:
commit 3ad9c5583845986979a25d615a9640770a3bf9f6
Author: Jeffrey Altman <[email protected]>
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 <[email protected]>
    Tested-by: Jeffrey Altman <[email protected]>
    Reviewed-by: Derrick Brashear <[email protected]>
    Tested-by: Derrick Brashear <[email protected]>

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

-- 
OpenAFS Master Repository
_______________________________________________
OpenAFS-cvs mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-cvs

Reply via email to