• Home
  • Raw
  • Download

Lines Matching refs:server

54 AllocMidQEntry(const struct smb_hdr *smb_buffer, struct TCP_Server_Info *server)  in AllocMidQEntry()  argument
58 if (server == NULL) { in AllocMidQEntry()
73 temp->server = server; in AllocMidQEntry()
94 __le16 command = midEntry->server->vals->lock_cmd; in _cifs_mid_q_entry_release()
99 struct TCP_Server_Info *server = midEntry->server; in _cifs_mid_q_entry_release() local
103 server->ops->handle_cancelled_mid) in _cifs_mid_q_entry_release()
104 server->ops->handle_cancelled_mid(midEntry, server); 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()
149 cifs_stats_inc(&server->smb2slowcmd[smb_cmd]); in _cifs_mid_q_entry_release()
203 smb_send_kvec(struct TCP_Server_Info *server, struct msghdr *smb_msg, in smb_send_kvec() argument
208 struct socket *ssocket = server->ssocket; in smb_send_kvec()
212 smb_msg->msg_name = (struct sockaddr *) &server->dstaddr; in smb_send_kvec()
216 if (server->noblocksnd) in smb_send_kvec()
244 (!server->noblocksnd && (retries > 2))) { in smb_send_kvec()
272 smb_rqst_len(struct TCP_Server_Info *server, struct smb_rqst *rqst) in smb_rqst_len() argument
279 if (server->vals->header_preamble_size == 0 && in smb_rqst_len()
316 __smb_send_rqst(struct TCP_Server_Info *server, int num_rqst, in __smb_send_rqst() argument
326 struct socket *ssocket = server->ssocket; in __smb_send_rqst()
330 if (cifs_rdma_enabled(server)) { in __smb_send_rqst()
333 if (server->smbd_conn) in __smb_send_rqst()
334 rc = smbd_send(server, num_rqst, rqst); in __smb_send_rqst()
350 send_length += smb_rqst_len(server, &rqst[j]); in __smb_send_rqst()
364 if (server->vals->header_preamble_size == 0) { in __smb_send_rqst()
370 rc = smb_send_kvec(server, &smb_msg, &sent); in __smb_send_rqst()
392 rc = smb_send_kvec(server, &smb_msg, &sent); in __smb_send_rqst()
408 rc = smb_send_kvec(server, &smb_msg, &sent); 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()
461 smb_send_rqst(struct TCP_Server_Info *server, int num_rqst, in smb_send_rqst() argument
470 return __smb_send_rqst(server, num_rqst, rqst); in smb_send_rqst()
475 if (!server->ops->init_transform_rq) { in smb_send_rqst()
493 rc = server->ops->init_transform_rq(server, num_rqst + 1, in smb_send_rqst()
498 rc = __smb_send_rqst(server, num_rqst + 1, &cur_rqst[0]); in smb_send_rqst()
506 smb_send(struct TCP_Server_Info *server, struct smb_hdr *smb_buffer, in smb_send() argument
518 return __smb_send_rqst(server, 1, &rqst); in smb_send()
522 wait_for_free_credits(struct TCP_Server_Info *server, const int num_credits, in wait_for_free_credits() argument
540 credits = server->ops->get_credits_field(server, optype); 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()
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()
560 cifs_num_waiters_inc(server); in wait_for_free_credits()
561 rc = wait_event_killable_timeout(server->request_q, in wait_for_free_credits()
562 has_credits(server, credits, num_credits), t); in wait_for_free_credits()
563 cifs_num_waiters_dec(server); 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()
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()
594 server->in_flight > 2 * MAX_COMPOUND && in wait_for_free_credits()
596 spin_unlock(&server->req_lock); in wait_for_free_credits()
597 cifs_num_waiters_inc(server); in wait_for_free_credits()
599 server->request_q, in wait_for_free_credits()
600 has_credits(server, credits, in wait_for_free_credits()
603 cifs_num_waiters_dec(server); in wait_for_free_credits()
606 server->CurrentMid, in wait_for_free_credits()
607 server->hostname, num_credits, in wait_for_free_credits()
615 spin_lock(&server->req_lock); 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()
640 wait_for_free_request(struct TCP_Server_Info *server, const int flags, in wait_for_free_request() argument
643 return wait_for_free_credits(server, 1, -1, flags, in wait_for_free_request()
648 wait_for_compound_request(struct TCP_Server_Info *server, int num, in wait_for_compound_request() argument
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()
673 if (server->in_flight == 0) { in wait_for_compound_request()
674 spin_unlock(&server->req_lock); in wait_for_compound_request()
678 spin_unlock(&server->req_lock); in wait_for_compound_request()
680 return wait_for_free_credits(server, num, 60000, flags, in wait_for_compound_request()
685 cifs_wait_mtu_credits(struct TCP_Server_Info *server, unsigned int size, in cifs_wait_mtu_credits() argument
690 credits->instance = server->reconnect_instance; in cifs_wait_mtu_credits()
697 if (ses->server->tcpStatus == CifsExiting) { in allocate_mid()
701 if (ses->server->tcpStatus == CifsNeedReconnect) { in allocate_mid()
720 *ppmidQ = AllocMidQEntry(in_buf, ses->server); in allocate_mid()
724 list_add_tail(&(*ppmidQ)->qhead, &ses->server->pending_mid_q); in allocate_mid()
730 wait_for_response(struct TCP_Server_Info *server, struct mid_q_entry *midQ) in wait_for_response() argument
734 error = wait_event_freezekillable_unsafe(server->response_q, in wait_for_response()
743 cifs_setup_async_request(struct TCP_Server_Info *server, struct smb_rqst *rqst) in cifs_setup_async_request() argument
754 if (server->sign) in cifs_setup_async_request()
757 mid = AllocMidQEntry(hdr, server); in cifs_setup_async_request()
761 rc = cifs_sign_rqst(rqst, server, &mid->sequence_number); in cifs_setup_async_request()
775 cifs_call_async(struct TCP_Server_Info *server, struct smb_rqst *rqst, in cifs_call_async() argument
789 rc = wait_for_free_request(server, flags, &instance); in cifs_call_async()
797 mutex_lock(&server->srv_mutex); in cifs_call_async()
804 if (instance != server->reconnect_instance) { in cifs_call_async()
805 mutex_unlock(&server->srv_mutex); in cifs_call_async()
806 add_credits_and_wake_if(server, &credits, optype); in cifs_call_async()
810 mid = server->ops->setup_async_request(server, rqst); in cifs_call_async()
812 mutex_unlock(&server->srv_mutex); in cifs_call_async()
813 add_credits_and_wake_if(server, &credits, optype); in cifs_call_async()
825 list_add_tail(&mid->qhead, &server->pending_mid_q); in cifs_call_async()
833 cifs_in_send_inc(server); in cifs_call_async()
834 rc = smb_send_rqst(server, 1, rqst, flags); in cifs_call_async()
835 cifs_in_send_dec(server); in cifs_call_async()
838 revert_current_mid(server, mid->credits); in cifs_call_async()
839 server->sequence_number -= 2; in cifs_call_async()
843 mutex_unlock(&server->srv_mutex); in cifs_call_async()
848 add_credits_and_wake_if(server, &credits, optype); in cifs_call_async()
880 cifs_sync_mid_result(struct mid_q_entry *mid, struct TCP_Server_Info *server) in cifs_sync_mid_result() argument
917 send_cancel(struct TCP_Server_Info *server, struct smb_rqst *rqst, in send_cancel() argument
920 return server->ops->send_cancel ? in send_cancel()
921 server->ops->send_cancel(server, rqst, mid) : 0; in send_cancel()
925 cifs_check_receive(struct mid_q_entry *mid, struct TCP_Server_Info *server, in cifs_check_receive() argument
933 if (server->sign) { in cifs_check_receive()
944 rc = cifs_verify_signature(&rqst, server, in cifs_check_receive()
970 rc = cifs_sign_rqst(rqst, ses->server, &mid->sequence_number); in cifs_setup_request()
981 struct TCP_Server_Info *server = mid->server; in cifs_compound_callback() local
984 credits.value = server->ops->get_credits(mid); in cifs_compound_callback()
985 credits.instance = server->reconnect_instance; in cifs_compound_callback()
987 add_credits(server, &credits, mid->optype); in cifs_compound_callback()
1024 return ses->chans[index].server; in cifs_pick_channel()
1032 struct TCP_Server_Info *server, in compound_send_recv() argument
1050 if (!ses || !ses->server || !server) { in compound_send_recv()
1055 if (server->tcpStatus == CifsExiting) in compound_send_recv()
1066 rc = wait_for_compound_request(server, num_rqst, flags, in compound_send_recv()
1082 mutex_lock(&server->srv_mutex); in compound_send_recv()
1091 if (instance != server->reconnect_instance) { in compound_send_recv()
1092 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1094 add_credits(server, &credits[j], optype); in compound_send_recv()
1099 midQ[i] = server->ops->setup_request(ses, server, &rqst[i]); in compound_send_recv()
1101 revert_current_mid(server, i); in compound_send_recv()
1104 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1108 add_credits(server, &credits[j], optype); in compound_send_recv()
1124 cifs_in_send_inc(server); in compound_send_recv()
1125 rc = smb_send_rqst(server, num_rqst, rqst, flags); in compound_send_recv()
1126 cifs_in_send_dec(server); in compound_send_recv()
1132 revert_current_mid(server, num_rqst); in compound_send_recv()
1133 server->sequence_number -= 2; in compound_send_recv()
1136 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1144 add_credits(server, &credits[i], optype); in compound_send_recv()
1160 mutex_lock(&server->srv_mutex); in compound_send_recv()
1163 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1167 rc = wait_for_response(server, midQ[i]); in compound_send_recv()
1175 send_cancel(server, &rqst[i], midQ[i]); in compound_send_recv()
1191 rc = cifs_sync_mid_result(midQ[i], server); in compound_send_recv()
1208 server->vals->header_preamble_size; in compound_send_recv()
1215 rc = server->ops->check_receive(midQ[i], server, in compound_send_recv()
1232 mutex_lock(&server->srv_mutex); in compound_send_recv()
1234 mutex_unlock(&server->srv_mutex); in compound_send_recv()
1254 struct TCP_Server_Info *server, in cifs_send_recv() argument
1258 return compound_send_recv(xid, ses, server, flags, 1, in cifs_send_recv()
1294 rc = cifs_send_recv(xid, ses, ses->server, in SendReceive2()
1312 struct TCP_Server_Info *server; in SendReceive() local
1318 server = ses->server; in SendReceive()
1319 if (server == NULL) { in SendReceive()
1324 if (server->tcpStatus == CifsExiting) in SendReceive()
1337 rc = wait_for_free_request(server, flags, &credits.instance); in SendReceive()
1345 mutex_lock(&server->srv_mutex); in SendReceive()
1349 mutex_unlock(&server->srv_mutex); in SendReceive()
1351 add_credits(server, &credits, 0); in SendReceive()
1355 rc = cifs_sign_smb(in_buf, server, &midQ->sequence_number); in SendReceive()
1357 mutex_unlock(&server->srv_mutex); in SendReceive()
1363 cifs_in_send_inc(server); in SendReceive()
1364 rc = smb_send(server, in_buf, len); in SendReceive()
1365 cifs_in_send_dec(server); in SendReceive()
1369 server->sequence_number -= 2; in SendReceive()
1371 mutex_unlock(&server->srv_mutex); in SendReceive()
1376 rc = wait_for_response(server, midQ); in SendReceive()
1378 send_cancel(server, &rqst, midQ); in SendReceive()
1384 add_credits(server, &credits, 0); in SendReceive()
1390 rc = cifs_sync_mid_result(midQ, server); in SendReceive()
1392 add_credits(server, &credits, 0); in SendReceive()
1405 rc = cifs_check_receive(midQ, server, 0); in SendReceive()
1408 add_credits(server, &credits, 0); in SendReceive()
1432 pSMB->hdr.Mid = get_next_mid(ses->server); in send_lock_cancel()
1451 struct TCP_Server_Info *server; in SendReceiveBlockingLock() local
1458 server = ses->server; in SendReceiveBlockingLock()
1460 if (server == NULL) { in SendReceiveBlockingLock()
1465 if (server->tcpStatus == CifsExiting) in SendReceiveBlockingLock()
1478 rc = wait_for_free_request(server, CIFS_BLOCKING_OP, &instance); in SendReceiveBlockingLock()
1486 mutex_lock(&server->srv_mutex); in SendReceiveBlockingLock()
1490 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1494 rc = cifs_sign_smb(in_buf, server, &midQ->sequence_number); in SendReceiveBlockingLock()
1497 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1502 cifs_in_send_inc(server); in SendReceiveBlockingLock()
1503 rc = smb_send(server, in_buf, len); in SendReceiveBlockingLock()
1504 cifs_in_send_dec(server); in SendReceiveBlockingLock()
1508 server->sequence_number -= 2; in SendReceiveBlockingLock()
1510 mutex_unlock(&server->srv_mutex); in SendReceiveBlockingLock()
1518 rc = wait_event_interruptible(server->response_q, in SendReceiveBlockingLock()
1520 ((server->tcpStatus != CifsGood) && in SendReceiveBlockingLock()
1521 (server->tcpStatus != CifsNew))); in SendReceiveBlockingLock()
1526 ((server->tcpStatus == CifsGood) || in SendReceiveBlockingLock()
1527 (server->tcpStatus == CifsNew))) { in SendReceiveBlockingLock()
1532 rc = send_cancel(server, &rqst, midQ); in SendReceiveBlockingLock()
1551 rc = wait_for_response(server, midQ); in SendReceiveBlockingLock()
1553 send_cancel(server, &rqst, midQ); in SendReceiveBlockingLock()
1568 rc = cifs_sync_mid_result(midQ, server); in SendReceiveBlockingLock()
1581 rc = cifs_check_receive(midQ, server, 0); in SendReceiveBlockingLock()