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