From: Jeffrey Hutzelman Date: Fri, 23 May 2008 15:55:47 +0000 (+0000) Subject: DEVEL15-rx-client-keep-keepalives-20080522 X-Git-Tag: openafs-devel-1_5_50~115 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=53574d28fa7dbfa3a0f4adebde3ba290bedf7522;p=packages%2Fo%2Fopenafs.git DEVEL15-rx-client-keep-keepalives-20080522 LICENSE IPL10 FIXES 20727 not our bug, but, previous code refactoring broke rx. put back keepalives in cli ent rx connections while they are turned around. (cherry picked from commit c34822d6105cef7f68423e4ebbf485b2d11b9635) --- diff --git a/src/rx/rx.c b/src/rx/rx.c index 564691f2e..8dd3fe090 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -3006,6 +3006,7 @@ rxi_ReceivePacket(register 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 @@ -4054,6 +4055,7 @@ rxi_ReceiveAckPacket(register struct rx_call *call, struct rx_packet *np, && call->tfirst + call->nSoftAcked >= call->tnext) { call->state = RX_STATE_DALLY; rxi_ClearTransmitQueue(call, 0); + rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); } else if (!queue_IsEmpty(&call->tq)) { rxi_Start(0, call, 0, istack); } @@ -4318,7 +4320,6 @@ rxi_SetAcksInTransmitQueue(register struct rx_call *call) } rxevent_Cancel(call->resendEvent, call, RX_CALL_REFCOUNT_RESEND); - rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); call->tfirst = call->tnext; call->nSoftAcked = 0; @@ -4359,7 +4360,6 @@ rxi_ClearTransmitQueue(register struct rx_call *call, register int force) #endif /* AFS_GLOBAL_RXLOCK_KERNEL */ rxevent_Cancel(call->resendEvent, call, RX_CALL_REFCOUNT_RESEND); - rxevent_Cancel(call->keepAliveEvent, call, RX_CALL_REFCOUNT_ALIVE); call->tfirst = call->tnext; /* implicitly acknowledge all data already sent */ call->nSoftAcked = 0;