RX: Avoid timing out non-kernel busy channels
authorAndrew Deason <adeason@sinenomine.net>
Mon, 7 Mar 2011 17:08:26 +0000 (11:08 -0600)
committerDerrick Brashear <shadow@dementia.org>
Tue, 8 Mar 2011 19:55:33 +0000 (11:55 -0800)
commiteddcee3ad518dff9fbfda790640c5bfd2e97ef5a
tree10c33ebe011e05fad5d57faaa9c2bd40e6608c29
parentb13a5a527d87c7b9a73fd92eb7633e1796e3337f
RX: Avoid timing out non-kernel busy channels

When we encounter a "busy" call channel (indicated by receiving
RX_PACKET_TYPE_BUSY packets), we can error out a call with
RX_CALL_TIMEOUT to try and get the application code to retry the call.
However, many RX applications are not aware of this, and will just
fail with an error upon receiving a single busy packet.

So instead, make this behavior optional, and only do it if the
application tells us what specific error it expects to receive when a
busy call channel is detected. Enable this behavior for the Unix cache
manager, as it can cope with receiving an RX_CALL_TIMEOUT error in
this scenario.

Change-Id: I2fe03c0ff81576da3b2ce2b4d27a16d5631c073e
Reviewed-on: http://gerrit.openafs.org/4159
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/afs/afs_call.c
src/afs/afs_pag_call.c
src/libafsrpc/afsrpc.def
src/libafsrpc/afsrpc.exp
src/rx/rx.c
src/rx/rx_prototypes.h
src/shlibafsrpc/Makefile.in
src/shlibafsrpc/libafsrpc.map