Lines Matching +full:tcon +full:- +full:channel

20  *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
50 wake_up_process(mid->callback_data); in cifs_wake_up_task()
65 kref_init(&temp->refcount); in AllocMidQEntry()
66 temp->mid = get_mid(smb_buffer); in AllocMidQEntry()
67 temp->pid = current->pid; in AllocMidQEntry()
68 temp->command = cpu_to_le16(smb_buffer->Command); in AllocMidQEntry()
69 cifs_dbg(FYI, "For smb_command %d\n", smb_buffer->Command); in AllocMidQEntry()
70 /* do_gettimeofday(&temp->when_sent);*/ /* easier to use jiffies */ in AllocMidQEntry()
72 temp->when_alloc = jiffies; in AllocMidQEntry()
73 temp->server = server; in AllocMidQEntry()
80 temp->creator = current; in AllocMidQEntry()
81 temp->callback = cifs_wake_up_task; in AllocMidQEntry()
82 temp->callback_data = current; in AllocMidQEntry()
85 temp->mid_state = MID_REQUEST_ALLOCATED; in AllocMidQEntry()
94 __le16 command = midEntry->server->vals->lock_cmd; in _cifs_mid_q_entry_release()
95 __u16 smb_cmd = le16_to_cpu(midEntry->command); in _cifs_mid_q_entry_release()
99 struct TCP_Server_Info *server = midEntry->server; in _cifs_mid_q_entry_release()
101 if (midEntry->resp_buf && (midEntry->mid_flags & MID_WAIT_CANCELLED) && in _cifs_mid_q_entry_release()
102 midEntry->mid_state == MID_RESPONSE_RECEIVED && in _cifs_mid_q_entry_release()
103 server->ops->handle_cancelled_mid) in _cifs_mid_q_entry_release()
104 server->ops->handle_cancelled_mid(midEntry->resp_buf, server); in _cifs_mid_q_entry_release()
106 midEntry->mid_state = MID_FREE; in _cifs_mid_q_entry_release()
108 if (midEntry->large_buf) in _cifs_mid_q_entry_release()
109 cifs_buf_release(midEntry->resp_buf); in _cifs_mid_q_entry_release()
111 cifs_small_buf_release(midEntry->resp_buf); in _cifs_mid_q_entry_release()
114 if (now < midEntry->when_alloc) in _cifs_mid_q_entry_release()
116 roundtrip_time = now - midEntry->when_alloc; in _cifs_mid_q_entry_release()
119 if (atomic_read(&server->num_cmds[smb_cmd]) == 0) { in _cifs_mid_q_entry_release()
120 server->slowest_cmd[smb_cmd] = roundtrip_time; in _cifs_mid_q_entry_release()
121 server->fastest_cmd[smb_cmd] = roundtrip_time; in _cifs_mid_q_entry_release()
123 if (server->slowest_cmd[smb_cmd] < roundtrip_time) in _cifs_mid_q_entry_release()
124 server->slowest_cmd[smb_cmd] = roundtrip_time; in _cifs_mid_q_entry_release()
125 else if (server->fastest_cmd[smb_cmd] > roundtrip_time) in _cifs_mid_q_entry_release()
126 server->fastest_cmd[smb_cmd] = roundtrip_time; in _cifs_mid_q_entry_release()
128 cifs_stats_inc(&server->num_cmds[smb_cmd]); in _cifs_mid_q_entry_release()
129 server->time_per_cmd[smb_cmd] += roundtrip_time; in _cifs_mid_q_entry_release()
137 * since only affects debug counters - so leaving the calc as simple in _cifs_mid_q_entry_release()
142 time_after(now, midEntry->when_alloc + (slow_rsp_threshold * HZ)) && in _cifs_mid_q_entry_release()
143 (midEntry->command != command)) { in _cifs_mid_q_entry_release()
149 cifs_stats_inc(&server->smb2slowcmd[smb_cmd]); in _cifs_mid_q_entry_release()
151 trace_smb3_slow_rsp(smb_cmd, midEntry->mid, midEntry->pid, in _cifs_mid_q_entry_release()
152 midEntry->when_sent, midEntry->when_received); in _cifs_mid_q_entry_release()
155 midEntry->command, midEntry->mid); in _cifs_mid_q_entry_release()
157 now - midEntry->when_alloc, in _cifs_mid_q_entry_release()
158 now - midEntry->when_sent, in _cifs_mid_q_entry_release()
159 now - midEntry->when_received); in _cifs_mid_q_entry_release()
163 put_task_struct(midEntry->creator); in _cifs_mid_q_entry_release()
171 kref_put(&midEntry->refcount, _cifs_mid_q_entry_release); in cifs_mid_q_entry_release()
184 if (!(mid->mid_flags & MID_DELETED)) { in cifs_delete_mid()
185 list_del_init(&mid->qhead); in cifs_delete_mid()
186 mid->mid_flags |= MID_DELETED; in cifs_delete_mid()
194 * smb_send_kvec - send an array of kvecs to the server
208 struct socket *ssocket = server->ssocket; in smb_send_kvec()
212 smb_msg->msg_name = (struct sockaddr *) &server->dstaddr; in smb_send_kvec()
213 smb_msg->msg_namelen = sizeof(struct sockaddr); in smb_send_kvec()
214 smb_msg->msg_control = NULL; in smb_send_kvec()
215 smb_msg->msg_controllen = 0; in smb_send_kvec()
216 if (server->noblocksnd) in smb_send_kvec()
217 smb_msg->msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL; in smb_send_kvec()
219 smb_msg->msg_flags = MSG_NOSIGNAL; in smb_send_kvec()
241 if (rc == -EAGAIN) { in smb_send_kvec()
244 (!server->noblocksnd && (retries > 2))) { in smb_send_kvec()
247 return -EAGAIN; in smb_send_kvec()
279 if (server->vals->header_preamble_size == 0 && in smb_rqst_len()
280 rqst->rq_nvec >= 2 && rqst->rq_iov[0].iov_len == 4) { in smb_rqst_len()
281 iov = &rqst->rq_iov[1]; in smb_rqst_len()
282 nvec = rqst->rq_nvec - 1; in smb_rqst_len()
284 iov = rqst->rq_iov; in smb_rqst_len()
285 nvec = rqst->rq_nvec; in smb_rqst_len()
298 if (rqst->rq_npages) { in smb_rqst_len()
299 if (rqst->rq_npages == 1) in smb_rqst_len()
300 buflen += rqst->rq_tailsz; in smb_rqst_len()
306 buflen += rqst->rq_pagesz * (rqst->rq_npages - 1) - in smb_rqst_len()
307 rqst->rq_offset; in smb_rqst_len()
308 buflen += rqst->rq_tailsz; in smb_rqst_len()
326 struct socket *ssocket = server->ssocket; in __smb_send_rqst()
331 /* return -EAGAIN when connecting or reconnecting */ in __smb_send_rqst()
332 rc = -EAGAIN; in __smb_send_rqst()
333 if (server->smbd_conn) in __smb_send_rqst()
339 return -EAGAIN; in __smb_send_rqst()
343 return -ERESTARTSYS; in __smb_send_rqst()
347 tcp_sock_set_cork(ssocket->sk, true); in __smb_send_rqst()
364 if (server->vals->header_preamble_size == 0) { in __smb_send_rqst()
432 rc = -EINTR; in __smb_send_rqst()
436 tcp_sock_set_cork(ssocket->sk, false); in __smb_send_rqst()
446 server->tcpStatus = CifsNeedReconnect; in __smb_send_rqst()
447 trace_smb3_partial_send_reconnect(server->CurrentMid, in __smb_send_rqst()
448 server->hostname); in __smb_send_rqst()
451 if (rc < 0 && rc != -EINTR) in __smb_send_rqst()
472 if (num_rqst > MAX_COMPOUND - 1) in smb_send_rqst()
473 return -ENOMEM; in smb_send_rqst()
475 if (!server->ops->init_transform_rq) { in smb_send_rqst()
477 return -EIO; in smb_send_rqst()
482 return -ENOMEM; in smb_send_rqst()
493 rc = server->ops->init_transform_rq(server, num_rqst + 1, in smb_send_rqst()
540 credits = server->ops->get_credits_field(server, optype); in wait_for_free_credits()
543 return -EAGAIN; in wait_for_free_credits()
545 spin_lock(&server->req_lock); in wait_for_free_credits()
548 server->in_flight++; in wait_for_free_credits()
549 if (server->in_flight > server->max_in_flight) in wait_for_free_credits()
550 server->max_in_flight = server->in_flight; in wait_for_free_credits()
551 *credits -= 1; in wait_for_free_credits()
552 *instance = server->reconnect_instance; in wait_for_free_credits()
553 spin_unlock(&server->req_lock); in wait_for_free_credits()
559 spin_unlock(&server->req_lock); in wait_for_free_credits()
561 rc = wait_event_killable_timeout(server->request_q, in wait_for_free_credits()
565 trace_smb3_credit_timeout(server->CurrentMid, in wait_for_free_credits()
566 server->hostname, num_credits, 0); in wait_for_free_credits()
569 return -ENOTSUPP; in wait_for_free_credits()
571 if (rc == -ERESTARTSYS) in wait_for_free_credits()
572 return -ERESTARTSYS; in wait_for_free_credits()
573 spin_lock(&server->req_lock); in wait_for_free_credits()
575 if (server->tcpStatus == CifsExiting) { in wait_for_free_credits()
576 spin_unlock(&server->req_lock); in wait_for_free_credits()
577 return -ENOENT; in wait_for_free_credits()
584 * starved for credits by single-credit requests. in wait_for_free_credits()
594 server->in_flight > 2 * MAX_COMPOUND && in wait_for_free_credits()
596 spin_unlock(&server->req_lock); in wait_for_free_credits()
599 server->request_q, in wait_for_free_credits()
606 server->CurrentMid, in wait_for_free_credits()
607 server->hostname, num_credits, in wait_for_free_credits()
611 return -ENOTSUPP; in wait_for_free_credits()
613 if (rc == -ERESTARTSYS) in wait_for_free_credits()
614 return -ERESTARTSYS; in wait_for_free_credits()
615 spin_lock(&server->req_lock); in wait_for_free_credits()
626 *credits -= num_credits; in wait_for_free_credits()
627 server->in_flight += num_credits; in wait_for_free_credits()
628 if (server->in_flight > server->max_in_flight) in wait_for_free_credits()
629 server->max_in_flight = server->in_flight; in wait_for_free_credits()
630 *instance = server->reconnect_instance; in wait_for_free_credits()
632 spin_unlock(&server->req_lock); in wait_for_free_credits()
643 return wait_for_free_credits(server, 1, -1, flags, in wait_for_free_request()
653 credits = server->ops->get_credits_field(server, flags & CIFS_OP_MASK); in wait_for_compound_request()
655 spin_lock(&server->req_lock); in wait_for_compound_request()
661 if (server->in_flight < num - *credits) { in wait_for_compound_request()
662 spin_unlock(&server->req_lock); in wait_for_compound_request()
663 return -ENOTSUPP; in wait_for_compound_request()
666 spin_unlock(&server->req_lock); in wait_for_compound_request()
677 credits->value = 0; in cifs_wait_mtu_credits()
678 credits->instance = server->reconnect_instance; in cifs_wait_mtu_credits()
685 if (ses->server->tcpStatus == CifsExiting) { in allocate_mid()
686 return -ENOENT; in allocate_mid()
689 if (ses->server->tcpStatus == CifsNeedReconnect) { in allocate_mid()
690 cifs_dbg(FYI, "tcp session dead - return to caller to retry\n"); in allocate_mid()
691 return -EAGAIN; in allocate_mid()
694 if (ses->status == CifsNew) { in allocate_mid()
695 if ((in_buf->Command != SMB_COM_SESSION_SETUP_ANDX) && in allocate_mid()
696 (in_buf->Command != SMB_COM_NEGOTIATE)) in allocate_mid()
697 return -EAGAIN; in allocate_mid()
698 /* else ok - we are setting up session */ in allocate_mid()
701 if (ses->status == CifsExiting) { in allocate_mid()
703 if (in_buf->Command != SMB_COM_LOGOFF_ANDX) in allocate_mid()
704 return -EAGAIN; in allocate_mid()
705 /* else ok - we are shutting down session */ in allocate_mid()
708 *ppmidQ = AllocMidQEntry(in_buf, ses->server); in allocate_mid()
710 return -ENOMEM; in allocate_mid()
712 list_add_tail(&(*ppmidQ)->qhead, &ses->server->pending_mid_q); in allocate_mid()
722 error = wait_event_freezekillable_unsafe(server->response_q, in wait_for_response()
723 midQ->mid_state != MID_REQUEST_SUBMITTED); in wait_for_response()
725 return -ERESTARTSYS; in wait_for_response()
734 struct smb_hdr *hdr = (struct smb_hdr *)rqst->rq_iov[0].iov_base; in cifs_setup_async_request()
737 if (rqst->rq_iov[0].iov_len != 4 || in cifs_setup_async_request()
738 rqst->rq_iov[0].iov_base + 4 != rqst->rq_iov[1].iov_base) in cifs_setup_async_request()
739 return ERR_PTR(-EIO); in cifs_setup_async_request()
742 if (server->sign) in cifs_setup_async_request()
743 hdr->Flags2 |= SMBFLG2_SECURITY_SIGNATURE; in cifs_setup_async_request()
747 return ERR_PTR(-ENOMEM); in cifs_setup_async_request()
749 rc = cifs_sign_rqst(rqst, server, &mid->sequence_number); in cifs_setup_async_request()
783 instance = exist_credits->instance; in cifs_call_async()
785 mutex_lock(&server->srv_mutex); in cifs_call_async()
790 * return -EAGAIN in such cases to let callers handle it. in cifs_call_async()
792 if (instance != server->reconnect_instance) { in cifs_call_async()
793 mutex_unlock(&server->srv_mutex); in cifs_call_async()
795 return -EAGAIN; in cifs_call_async()
798 mid = server->ops->setup_async_request(server, rqst); in cifs_call_async()
800 mutex_unlock(&server->srv_mutex); in cifs_call_async()
805 mid->receive = receive; in cifs_call_async()
806 mid->callback = callback; in cifs_call_async()
807 mid->callback_data = cbdata; in cifs_call_async()
808 mid->handle = handle; in cifs_call_async()
809 mid->mid_state = MID_REQUEST_SUBMITTED; in cifs_call_async()
813 list_add_tail(&mid->qhead, &server->pending_mid_q); in cifs_call_async()
826 revert_current_mid(server, mid->credits); in cifs_call_async()
827 server->sequence_number -= 2; in cifs_call_async()
831 mutex_unlock(&server->srv_mutex); in cifs_call_async()
873 __func__, le16_to_cpu(mid->command), mid->mid, mid->mid_state); in cifs_sync_mid_result()
876 switch (mid->mid_state) { in cifs_sync_mid_result()
881 rc = -EAGAIN; in cifs_sync_mid_result()
884 rc = -EIO; in cifs_sync_mid_result()
887 rc = -EHOSTDOWN; in cifs_sync_mid_result()
890 if (!(mid->mid_flags & MID_DELETED)) { in cifs_sync_mid_result()
891 list_del_init(&mid->qhead); in cifs_sync_mid_result()
892 mid->mid_flags |= MID_DELETED; in cifs_sync_mid_result()
895 __func__, mid->mid, mid->mid_state); in cifs_sync_mid_result()
896 rc = -EIO; in cifs_sync_mid_result()
908 return server->ops->send_cancel ? in send_cancel()
909 server->ops->send_cancel(server, rqst, mid) : 0; in send_cancel()
916 unsigned int len = get_rfc1002_length(mid->resp_buf) + 4; in cifs_check_receive()
918 dump_smb(mid->resp_buf, min_t(u32, 92, len)); in cifs_check_receive()
921 if (server->sign) { in cifs_check_receive()
927 iov[0].iov_base = mid->resp_buf; in cifs_check_receive()
929 iov[1].iov_base = (char *)mid->resp_buf + 4; in cifs_check_receive()
930 iov[1].iov_len = len - 4; in cifs_check_receive()
933 mid->sequence_number); in cifs_check_receive()
948 struct smb_hdr *hdr = (struct smb_hdr *)rqst->rq_iov[0].iov_base; in cifs_setup_request()
951 if (rqst->rq_iov[0].iov_len != 4 || in cifs_setup_request()
952 rqst->rq_iov[0].iov_base + 4 != rqst->rq_iov[1].iov_base) in cifs_setup_request()
953 return ERR_PTR(-EIO); in cifs_setup_request()
958 rc = cifs_sign_rqst(rqst, ses->server, &mid->sequence_number); in cifs_setup_request()
969 struct TCP_Server_Info *server = mid->server; in cifs_compound_callback()
972 credits.value = server->ops->get_credits(mid); in cifs_compound_callback()
973 credits.instance = server->reconnect_instance; in cifs_compound_callback()
975 add_credits(server, &credits, mid->optype); in cifs_compound_callback()
993 * Return a channel (master if none) of @ses that can be used to send
996 * If we are currently binding a new channel (negprot/sess.setup),
997 * return the new incomplete channel.
1006 if (!ses->binding) { in cifs_pick_channel()
1008 if (ses->chan_count > 1) { in cifs_pick_channel()
1009 index = (uint)atomic_inc_return(&ses->chan_seq); in cifs_pick_channel()
1010 index %= ses->chan_count; in cifs_pick_channel()
1012 return ses->chans[index].server; in cifs_pick_channel()
1038 if (!ses || !ses->server || !server) { in compound_send_recv()
1040 return -EIO; in compound_send_recv()
1043 if (server->tcpStatus == CifsExiting) in compound_send_recv()
1044 return -ENOENT; in compound_send_recv()
1070 mutex_lock(&server->srv_mutex); in compound_send_recv()
1076 * we obtained credits and return -EAGAIN in such cases to let callers in compound_send_recv()
1079 if (instance != server->reconnect_instance) { in compound_send_recv()
1080 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1083 return -EAGAIN; in compound_send_recv()
1087 midQ[i] = server->ops->setup_request(ses, server, &rqst[i]); in compound_send_recv()
1092 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1100 midQ[i]->mid_state = MID_REQUEST_SUBMITTED; in compound_send_recv()
1101 midQ[i]->optype = optype; in compound_send_recv()
1107 if (i < num_rqst - 1) in compound_send_recv()
1108 midQ[i]->callback = cifs_compound_callback; in compound_send_recv()
1110 midQ[i]->callback = cifs_compound_last_callback; in compound_send_recv()
1121 server->sequence_number -= 2; in compound_send_recv()
1124 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1128 * will not receive a response to - return credits back in compound_send_recv()
1137 * At this point the request is passed to the network stack - we assume in compound_send_recv()
1147 if ((ses->status == CifsNew) || (optype & CIFS_NEG_OP)) in compound_send_recv()
1159 midQ[i]->mid, le16_to_cpu(midQ[i]->command)); in compound_send_recv()
1162 midQ[i]->mid_flags |= MID_WAIT_CANCELLED; in compound_send_recv()
1163 if (midQ[i]->mid_state == MID_REQUEST_SUBMITTED) { in compound_send_recv()
1164 midQ[i]->callback = cifs_cancelled_callback; in compound_send_recv()
1183 if (!midQ[i]->resp_buf || in compound_send_recv()
1184 midQ[i]->mid_state != MID_RESPONSE_RECEIVED) { in compound_send_recv()
1185 rc = -EIO; in compound_send_recv()
1190 buf = (char *)midQ[i]->resp_buf; in compound_send_recv()
1192 resp_iov[i].iov_len = midQ[i]->resp_buf_size + in compound_send_recv()
1193 server->vals->header_preamble_size; in compound_send_recv()
1195 if (midQ[i]->large_buf) in compound_send_recv()
1200 rc = server->ops->check_receive(midQ[i], server, in compound_send_recv()
1205 midQ[i]->resp_buf = NULL; in compound_send_recv()
1212 if ((ses->status == CifsNew) || (optype & CIFS_NEG_OP)) { in compound_send_recv()
1260 return -ENOMEM; in SendReceive2()
1271 new_iov[1].iov_len -= 4; in SendReceive2()
1277 rc = cifs_send_recv(xid, ses, ses->server, in SendReceive2()
1291 unsigned int len = be32_to_cpu(in_buf->smb_buf_length); in SendReceive()
1299 return -EIO; in SendReceive()
1301 server = ses->server; in SendReceive()
1304 return -EIO; in SendReceive()
1307 if (server->tcpStatus == CifsExiting) in SendReceive()
1308 return -ENOENT; in SendReceive()
1312 use ses->maxReq */ in SendReceive()
1314 if (len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) { in SendReceive()
1317 return -EIO; in SendReceive()
1328 mutex_lock(&server->srv_mutex); in SendReceive()
1332 mutex_unlock(&server->srv_mutex); in SendReceive()
1338 rc = cifs_sign_smb(in_buf, server, &midQ->sequence_number); in SendReceive()
1340 mutex_unlock(&server->srv_mutex); in SendReceive()
1344 midQ->mid_state = MID_REQUEST_SUBMITTED; in SendReceive()
1352 server->sequence_number -= 2; in SendReceive()
1354 mutex_unlock(&server->srv_mutex); in SendReceive()
1363 if (midQ->mid_state == MID_REQUEST_SUBMITTED) { in SendReceive()
1364 /* no longer considered to be "in-flight" */ in SendReceive()
1365 midQ->callback = DeleteMidQEntry; in SendReceive()
1379 if (!midQ->resp_buf || !out_buf || in SendReceive()
1380 midQ->mid_state != MID_RESPONSE_RECEIVED) { in SendReceive()
1381 rc = -EIO; in SendReceive()
1386 *pbytes_returned = get_rfc1002_length(midQ->resp_buf); in SendReceive()
1387 memcpy(out_buf, midQ->resp_buf, *pbytes_returned + 4); in SendReceive()
1400 send_lock_cancel(const unsigned int xid, struct cifs_tcon *tcon, in send_lock_cancel() argument
1405 struct cifs_ses *ses = tcon->ses; in send_lock_cancel()
1413 pSMB->LockType = LOCKING_ANDX_CANCEL_LOCK|LOCKING_ANDX_LARGE_FILES; in send_lock_cancel()
1414 pSMB->Timeout = 0; in send_lock_cancel()
1415 pSMB->hdr.Mid = get_next_mid(ses->server); in send_lock_cancel()
1422 SendReceiveBlockingLock(const unsigned int xid, struct cifs_tcon *tcon, in SendReceiveBlockingLock() argument
1430 unsigned int len = be32_to_cpu(in_buf->smb_buf_length); in SendReceiveBlockingLock()
1436 if (tcon == NULL || tcon->ses == NULL) { in SendReceiveBlockingLock()
1438 return -EIO; in SendReceiveBlockingLock()
1440 ses = tcon->ses; in SendReceiveBlockingLock()
1441 server = ses->server; in SendReceiveBlockingLock()
1445 return -EIO; in SendReceiveBlockingLock()
1448 if (server->tcpStatus == CifsExiting) in SendReceiveBlockingLock()
1449 return -ENOENT; in SendReceiveBlockingLock()
1453 use ses->maxReq */ in SendReceiveBlockingLock()
1455 if (len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE - 4) { in SendReceiveBlockingLock()
1458 return -EIO; in SendReceiveBlockingLock()
1469 mutex_lock(&server->srv_mutex); in SendReceiveBlockingLock()
1473 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1477 rc = cifs_sign_smb(in_buf, server, &midQ->sequence_number); in SendReceiveBlockingLock()
1480 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1484 midQ->mid_state = MID_REQUEST_SUBMITTED; in SendReceiveBlockingLock()
1491 server->sequence_number -= 2; in SendReceiveBlockingLock()
1493 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1500 /* Wait for a reply - allow signals to interrupt. */ in SendReceiveBlockingLock()
1501 rc = wait_event_interruptible(server->response_q, in SendReceiveBlockingLock()
1502 (!(midQ->mid_state == MID_REQUEST_SUBMITTED)) || in SendReceiveBlockingLock()
1503 ((server->tcpStatus != CifsGood) && in SendReceiveBlockingLock()
1504 (server->tcpStatus != CifsNew))); in SendReceiveBlockingLock()
1507 if ((rc == -ERESTARTSYS) && in SendReceiveBlockingLock()
1508 (midQ->mid_state == MID_REQUEST_SUBMITTED) && in SendReceiveBlockingLock()
1509 ((server->tcpStatus == CifsGood) || in SendReceiveBlockingLock()
1510 (server->tcpStatus == CifsNew))) { in SendReceiveBlockingLock()
1512 if (in_buf->Command == SMB_COM_TRANSACTION2) { in SendReceiveBlockingLock()
1524 rc = send_lock_cancel(xid, tcon, in_buf, out_buf); in SendReceiveBlockingLock()
1526 /* If we get -ENOLCK back the lock may have in SendReceiveBlockingLock()
1528 if (rc && rc != -ENOLCK) { in SendReceiveBlockingLock()
1538 if (midQ->mid_state == MID_REQUEST_SUBMITTED) { in SendReceiveBlockingLock()
1539 /* no longer considered to be "in-flight" */ in SendReceiveBlockingLock()
1540 midQ->callback = DeleteMidQEntry; in SendReceiveBlockingLock()
1547 /* We got the response - restart system call. */ in SendReceiveBlockingLock()
1556 if (out_buf == NULL || midQ->mid_state != MID_RESPONSE_RECEIVED) { in SendReceiveBlockingLock()
1557 rc = -EIO; in SendReceiveBlockingLock()
1562 *pbytes_returned = get_rfc1002_length(midQ->resp_buf); in SendReceiveBlockingLock()
1563 memcpy(out_buf, midQ->resp_buf, *pbytes_returned + 4); in SendReceiveBlockingLock()
1567 if (rstart && rc == -EACCES) in SendReceiveBlockingLock()
1568 return -ERESTARTSYS; in SendReceiveBlockingLock()