osi_rxSleep(&call->rq);
#endif
}
+ /* cp is no longer valid since we may have given up the lock */
+ cp = call->currentPacket;
call->startWait = 0;
#ifdef RX_ENABLE_LOCKS
int
rxi_WritevProc(struct rx_call *call, struct iovec *iov, int nio, int nbytes)
{
- struct rx_packet *cp = call->currentPacket;
+ struct rx_packet *cp = NULL;
struct rx_call *p, *np;
int nextio;
int requestCount;
#endif /* RX_ENABLE_LOCKS */
}
#endif /* AFS_GLOBAL_RXLOCK_KERNEL */
+ /* cp is no longer valid since we may have given up the lock */
+ cp = call->currentPacket;
if (call->error) {
if (cp) {
#endif
call->startWait = 0;
}
+ /* cp is no longer valid since we may have given up the lock */
+ cp = call->currentPacket;
if (call->error) {
if (cp) {
void
rxi_FlushWrite(register struct rx_call *call)
{
- register struct rx_packet *cp = call->currentPacket;
+ register struct rx_packet *cp = NULL;
/* Free any packets from the last call to ReadvProc/WritevProc */
if (queue_IsNotEmpty(&call->iovq)) {
}
#endif /* AFS_GLOBAL_RXLOCK_KERNEL */
+ /* cp is no longer valid since we may have given up the lock */
+ cp = call->currentPacket;
+
if (cp) {
/* cp->length is only supposed to be the user's data */
/* cp->length was already set to (then-current)