]> git.michaelhowe.org Git - packages/o/openafs.git/commit
rx: Add RX_CALL_ACKALL_SENT flag and rxi_SendAck processing
authorJeffrey Altman <jaltman@your-file-system.com>
Sun, 5 Jun 2011 22:41:24 +0000 (18:41 -0400)
committerJeffrey Altman <jaltman@openafs.org>
Tue, 7 Jun 2011 15:40:56 +0000 (08:40 -0700)
commitcd326b2f54c3397468807c32ce0834f73c9d5d1b
tree40c6f36ed9e65e86270fa558945c5bcf52dd3a91
parente448824f9dac207f0198d2284988fcf97243d30e
rx: Add RX_CALL_ACKALL_SENT flag and rxi_SendAck processing

3cd3715e608b801b4848399e42cb47464e6e3cc3 modified rxi_ReceiveDataPacket
to send an ACKALL whenever RX_CALL_RECEIVE_DONE is set on the call.
This produced the potential for a race with ACKs that set the
firstPacket value to 'rnext' when the receive queue for the call
has yet to be emptied.  From the perspective of receiver the ACK
was already processed and does not require a response since the
previously received ACKALL acknowledged the delivery of all data
packets to the application.  When sending ACKs after ACKALL it is
therefore required that firstPacket be set to the sequence number
after the last unprocessed packet in the receive queue.

Thanks to Simon Wilkinson for his extensive assistance in identifying
the problem and the development of this patchset.

Change-Id: I3bdf0c8f297b1d91b1a2bf3284adfeb9301874eb
Reviewed-on: http://gerrit.openafs.org/4798
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/rx/rx.c
src/rx/rx.h