Rx: Remove conn_call_lock contention between rx_NewCall and rx_EndCall
authorJeffrey Altman <jaltman@your-file-system.com>
Mon, 5 Apr 2010 17:35:42 +0000 (13:35 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 6 Apr 2010 13:11:48 +0000 (06:11 -0700)
commit33010ef25e716f2ec2df17cc113f4ef8f67e3a74
tree5a6b98945bb8f6b3dcbf24dc2f73152c532f58b6
parent568a4078563e2cb9bd89409486e361357cc18450
Rx: Remove conn_call_lock contention between rx_NewCall and rx_EndCall

Add a new call state, RX_STATE_RESET, which permits us to
remove the conn_call_lock contention between rx_NewCall
and rx_EndCall.  It is no longer necessary for rx_NewCall
to hold conn_call_lock across rxi_ResetCall which can block.
rx_EndCall is therefore always free to complete without
unnecessary delays caused by rx_NewCall.

Change-Id: Ie169708681eb1bbbb31951b95f68e861a4b01c7e
Reviewed-on: http://gerrit.openafs.org/1697
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/rx/rx.c
src/rx/rx.h
src/rxdebug/rxdebug.c