rx: Generate BUSY packets for error call channels
[openafs.git] / src / rx / rx.c
index 45861e5..1a08e30 100644 (file)
@@ -3311,12 +3311,13 @@ rxi_ReceiveServerCall(osi_socket socket, struct rx_packet *np,
      */
 #ifdef RX_ENABLE_LOCKS
     if (call->state == RX_STATE_ACTIVE) {
+       int old_error = call->error;
        rxi_WaitforTQBusy(call);
         /* If we entered error state while waiting,
          * must call rxi_CallError to permit rxi_ResetCall
          * to processed when the tqWaiter count hits zero.
          */
-        if (call->error) {
+        if (call->error && call->error != old_error) {
            rxi_CallError(call, call->error);
            MUTEX_EXIT(&call->lock);
             return NULL;