]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL153X-rx-client-keep-keepalives-20080522 openafs-devel-1_5_38
authorJeffrey Hutzelman <jhutz@cmu.edu>
Fri, 23 May 2008 15:56:02 +0000 (15:56 +0000)
committerDerrick Brashear <shadow@dementia.org>
Fri, 23 May 2008 15:56:02 +0000 (15:56 +0000)
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)

src/rx/rx.c

index 564691f2eb4f33d1a9372c5e6754f9bf0e9be498..8dd3fe090ee757e209155a6a55496c55a185cb4d 100644 (file)
@@ -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;