struct smbdirect_socket socket;
- wait_queue_head_t wait_status;
-
spinlock_t receive_credit_lock;
int recv_credits;
int recv_credit_target;
spin_lock_init(&sc->recv_io.free.lock);
sc->status = SMBDIRECT_SOCKET_CREATED;
- init_waitqueue_head(&t->wait_status);
+ init_waitqueue_head(&sc->status_wait);
spin_lock_init(&sc->recv_io.reassembly.lock);
INIT_LIST_HEAD(&sc->recv_io.reassembly.list);
sc->recv_io.reassembly.full_packet_received = true;
sc->status = SMBDIRECT_SOCKET_CONNECTED;
enqueue_reassembly(t, recvmsg, 0);
- wake_up(&t->wait_status);
+ wake_up(&sc->status_wait);
return;
case SMBDIRECT_EXPECT_DATA_TRANSFER: {
struct smbdirect_data_transfer *data_transfer =
ksmbd_debug(RDMA, "Disconnecting cm_id=%p\n", sc->rdma.cm_id);
smb_direct_disconnect_rdma_work(&st->disconnect_work);
- wait_event_interruptible(st->wait_status,
+ wait_event_interruptible(sc->status_wait,
sc->status == SMBDIRECT_SOCKET_DISCONNECTED);
free_transport(st);
}
switch (event->event) {
case RDMA_CM_EVENT_ESTABLISHED: {
sc->status = SMBDIRECT_SOCKET_CONNECTED;
- wake_up(&t->wait_status);
+ wake_up(&sc->status_wait);
break;
}
case RDMA_CM_EVENT_DEVICE_REMOVAL:
ib_drain_qp(sc->ib.qp);
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
- wake_up_all(&t->wait_status);
+ wake_up_all(&sc->status_wait);
wake_up_all(&sc->recv_io.reassembly.wait_queue);
wake_up_all(&t->wait_send_credits);
break;
}
case RDMA_CM_EVENT_CONNECT_ERROR: {
sc->status = SMBDIRECT_SOCKET_DISCONNECTED;
- wake_up_all(&t->wait_status);
+ wake_up_all(&sc->status_wait);
break;
}
default:
int ret;
ksmbd_debug(RDMA, "Waiting for SMB_DIRECT negotiate request\n");
- ret = wait_event_interruptible_timeout(st->wait_status,
+ ret = wait_event_interruptible_timeout(sc->status_wait,
st->negotiation_requested ||
sc->status == SMBDIRECT_SOCKET_DISCONNECTED,
SMB_DIRECT_NEGOTIATE_TIMEOUT * HZ);