mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 23:10:58 +00:00
rx_ClearTransmitQueue should signal waiters when flushing
if we flush, play it safe and signal tq waiters. Change-Id: I945649c2e440c78c5c5a62da70236a67dc190228 Reviewed-on: http://gerrit.openafs.org/1682 Reviewed-by: Jeffrey Altman <jaltman@openafs.org> Tested-by: Jeffrey Altman <jaltman@openafs.org> Reviewed-by: Derrick Brashear <shadow@dementia.org>
This commit is contained in:
parent
fc02ed1065
commit
00a0351ae0
15
src/rx/rx.c
15
src/rx/rx.c
@ -4464,6 +4464,13 @@ rxi_ClearTransmitQueue(struct rx_call *call, int force)
|
||||
call->tqc -=
|
||||
#endif /* RXDEBUG_PACKET */
|
||||
rxi_FreePackets(0, &call->tq);
|
||||
if (call->tqWaiters || (call->flags & RX_CALL_TQ_WAIT)) {
|
||||
#ifdef RX_ENABLE_LOCKS
|
||||
CV_BROADCAST(&call->cv_tq);
|
||||
#else /* RX_ENABLE_LOCKS */
|
||||
osi_rxWakeup(&call->tq);
|
||||
#endif /* RX_ENABLE_LOCKS */
|
||||
}
|
||||
#ifdef AFS_GLOBAL_RXLOCK_KERNEL
|
||||
call->flags &= ~RX_CALL_TQ_CLEARME;
|
||||
}
|
||||
@ -4739,14 +4746,6 @@ rxi_ResetCall(struct rx_call *call, int newcall)
|
||||
dpf(("rcall %"AFS_PTR_FMT" has %d waiters and flags %d\n", call, call->tqWaiters, call->flags));
|
||||
}
|
||||
call->flags = 0;
|
||||
while (call->tqWaiters) {
|
||||
#ifdef RX_ENABLE_LOCKS
|
||||
CV_BROADCAST(&call->cv_tq);
|
||||
#else /* RX_ENABLE_LOCKS */
|
||||
osi_rxWakeup(&call->tq);
|
||||
#endif /* RX_ENABLE_LOCKS */
|
||||
call->tqWaiters--;
|
||||
}
|
||||
}
|
||||
|
||||
rxi_ClearReceiveQueue(call);
|
||||
|
Loading…
Reference in New Issue
Block a user