Rx: Do not stop keepalives on ACKALL receipt

We need to still keep sending periodic keepalives after receiving an
ACKALL, since the call is not done yet. ACKALLs can be received when
the peer has received all data from us, well before the call has
finished. This is particularly noticeable for long-lived calls that
have little data transfer, such as AFSVolForward and
AFSVolForwardMultiple.

This reverts commit b1549f29a9, which
was intended to be part of a fix for RT 20727.

FIXES 128848

Change-Id: I319e6e95d699ea87ecc72888452b5e1e6fcd88b0
Reviewed-on: http://gerrit.openafs.org/3876
Tested-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
Andrew Deason 2011-01-31 15:00:09 -06:00 committed by Derrick Brashear
parent c15468e260
commit ba51b43e35

View File

@ -3419,7 +3419,6 @@ rxi_ReceivePacket(struct rx_packet *np, osi_socket socket,
}
#endif /* AFS_GLOBAL_RXLOCK_KERNEL */
rxi_ClearTransmitQueue(call, 0);
rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE);
break;
default:
/* Should not reach here, unless the peer is broken: send an abort