rx ResetCall should wait if it says it will
authorDerrick Brashear <shadow@dementia.org>
Mon, 25 Jan 2010 21:49:53 +0000 (16:49 -0500)
committerDerrick Brashear <shadow|account-1000005@unknown>
Wed, 27 Jan 2010 16:54:56 +0000 (08:54 -0800)
We set TQ_WAIT... and then don't bother to wait. uh.

Change-Id: Ia7d3e52c8880db53fcf26b7d79ad349720018701
Reviewed-on: http://gerrit.openafs.org/1160
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Jeffrey Altman <jaltman@openafs.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/rx/rx.c

index ec342d8..9d4e3d5 100755 (executable)
@@ -4711,6 +4711,11 @@ rxi_ResetCall(struct rx_call *call, int newcall)
     if (flags & RX_CALL_TQ_BUSY) {
        call->flags = RX_CALL_TQ_CLEARME | RX_CALL_TQ_BUSY;
        call->flags |= (flags & RX_CALL_TQ_WAIT);
+#ifdef RX_ENABLE_LOCKS
+        CV_WAIT(&call->cv_tq, &call->lock);
+#else /* RX_ENABLE_LOCKS */
+        osi_rxSleep(&call->tq);
+#endif /* RX_ENABLE_LOCKS */
     } else
 #endif /* AFS_GLOBAL_RXLOCK_KERNEL */
     {