Lines Matching refs:server
62 static int ip_connect(struct TCP_Server_Info *server);
63 static int generic_ip_connect(struct TCP_Server_Info *server);
73 static int reconn_set_ipaddr_from_hostname(struct TCP_Server_Info *server) in reconn_set_ipaddr_from_hostname() argument
80 if (!server->hostname) in reconn_set_ipaddr_from_hostname()
84 if (server->hostname[0] == '\0') in reconn_set_ipaddr_from_hostname()
87 len = strlen(server->hostname) + 3; in reconn_set_ipaddr_from_hostname()
94 scnprintf(unc, len, "\\\\%s", server->hostname); in reconn_set_ipaddr_from_hostname()
96 spin_lock(&server->srv_lock); in reconn_set_ipaddr_from_hostname()
97 ss = server->dstaddr; in reconn_set_ipaddr_from_hostname()
98 spin_unlock(&server->srv_lock); in reconn_set_ipaddr_from_hostname()
105 __func__, server->hostname, rc); in reconn_set_ipaddr_from_hostname()
107 spin_lock(&server->srv_lock); in reconn_set_ipaddr_from_hostname()
108 memcpy(&server->dstaddr, &ss, sizeof(server->dstaddr)); in reconn_set_ipaddr_from_hostname()
109 spin_unlock(&server->srv_lock); in reconn_set_ipaddr_from_hostname()
123 struct TCP_Server_Info *server = tcon->ses->server; in smb2_query_server_interfaces() local
128 if (!server->ops->query_server_interfaces) in smb2_query_server_interfaces()
132 rc = server->ops->query_server_interfaces(xid, tcon, false); in smb2_query_server_interfaces()
157 cifs_signal_cifsd_for_reconnect(struct TCP_Server_Info *server, in cifs_signal_cifsd_for_reconnect() argument
165 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in cifs_signal_cifsd_for_reconnect()
169 spin_lock(&server->srv_lock); in cifs_signal_cifsd_for_reconnect()
170 if (server->tcpStatus != CifsExiting) in cifs_signal_cifsd_for_reconnect()
171 server->tcpStatus = CifsNeedReconnect; in cifs_signal_cifsd_for_reconnect()
172 spin_unlock(&server->srv_lock); in cifs_signal_cifsd_for_reconnect()
182 if (!ses->chans[i].server) in cifs_signal_cifsd_for_reconnect()
185 spin_lock(&ses->chans[i].server->srv_lock); in cifs_signal_cifsd_for_reconnect()
186 if (ses->chans[i].server->tcpStatus != CifsExiting) in cifs_signal_cifsd_for_reconnect()
187 ses->chans[i].server->tcpStatus = CifsNeedReconnect; in cifs_signal_cifsd_for_reconnect()
188 spin_unlock(&ses->chans[i].server->srv_lock); in cifs_signal_cifsd_for_reconnect()
206 cifs_mark_tcp_ses_conns_for_reconnect(struct TCP_Server_Info *server, in cifs_mark_tcp_ses_conns_for_reconnect() argument
220 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in cifs_mark_tcp_ses_conns_for_reconnect()
230 if (server->terminate) { in cifs_mark_tcp_ses_conns_for_reconnect()
232 server = pserver; in cifs_mark_tcp_ses_conns_for_reconnect()
245 if (cifs_ses_get_chan_index(ses, server) == in cifs_mark_tcp_ses_conns_for_reconnect()
251 if (!cifs_chan_is_iface_active(ses, server)) { in cifs_mark_tcp_ses_conns_for_reconnect()
253 cifs_chan_update_iface(ses, server); in cifs_mark_tcp_ses_conns_for_reconnect()
257 if (!mark_smb_session && cifs_chan_needs_reconnect(ses, server)) { in cifs_mark_tcp_ses_conns_for_reconnect()
265 cifs_chan_set_need_reconnect(ses, server); in cifs_mark_tcp_ses_conns_for_reconnect()
300 cifs_abort_connection(struct TCP_Server_Info *server) in cifs_abort_connection() argument
305 server->maxBuf = 0; in cifs_abort_connection()
306 server->max_read = 0; in cifs_abort_connection()
310 cifs_server_lock(server); in cifs_abort_connection()
311 if (server->ssocket) { in cifs_abort_connection()
312 cifs_dbg(FYI, "State: 0x%x Flags: 0x%lx\n", server->ssocket->state, in cifs_abort_connection()
313 server->ssocket->flags); in cifs_abort_connection()
314 kernel_sock_shutdown(server->ssocket, SHUT_WR); in cifs_abort_connection()
315 cifs_dbg(FYI, "Post shutdown state: 0x%x Flags: 0x%lx\n", server->ssocket->state, in cifs_abort_connection()
316 server->ssocket->flags); in cifs_abort_connection()
317 sock_release(server->ssocket); in cifs_abort_connection()
318 server->ssocket = NULL; in cifs_abort_connection()
319 put_net(cifs_net_ns(server)); in cifs_abort_connection()
321 server->sequence_number = 0; in cifs_abort_connection()
322 server->session_estab = false; in cifs_abort_connection()
323 kfree_sensitive(server->session_key.response); in cifs_abort_connection()
324 server->session_key.response = NULL; in cifs_abort_connection()
325 server->session_key.len = 0; in cifs_abort_connection()
326 server->lstrp = jiffies; in cifs_abort_connection()
331 spin_lock(&server->mid_lock); in cifs_abort_connection()
332 list_for_each_entry_safe(mid, nmid, &server->pending_mid_q, qhead) { in cifs_abort_connection()
339 spin_unlock(&server->mid_lock); in cifs_abort_connection()
340 cifs_server_unlock(server); in cifs_abort_connection()
349 if (cifs_rdma_enabled(server)) { in cifs_abort_connection()
350 cifs_server_lock(server); in cifs_abort_connection()
351 smbd_destroy(server); in cifs_abort_connection()
352 cifs_server_unlock(server); in cifs_abort_connection()
356 static bool cifs_tcp_ses_needs_reconnect(struct TCP_Server_Info *server, int num_targets) in cifs_tcp_ses_needs_reconnect() argument
358 spin_lock(&server->srv_lock); in cifs_tcp_ses_needs_reconnect()
359 server->nr_targets = num_targets; in cifs_tcp_ses_needs_reconnect()
360 if (server->tcpStatus == CifsExiting) { in cifs_tcp_ses_needs_reconnect()
362 spin_unlock(&server->srv_lock); in cifs_tcp_ses_needs_reconnect()
363 wake_up(&server->response_q); in cifs_tcp_ses_needs_reconnect()
368 trace_smb3_reconnect(server->CurrentMid, server->conn_id, in cifs_tcp_ses_needs_reconnect()
369 server->hostname); in cifs_tcp_ses_needs_reconnect()
370 server->tcpStatus = CifsNeedReconnect; in cifs_tcp_ses_needs_reconnect()
372 spin_unlock(&server->srv_lock); in cifs_tcp_ses_needs_reconnect()
389 static int __cifs_reconnect(struct TCP_Server_Info *server, in __cifs_reconnect() argument
394 if (!cifs_tcp_ses_needs_reconnect(server, 1)) in __cifs_reconnect()
397 cifs_mark_tcp_ses_conns_for_reconnect(server, mark_smb_session); in __cifs_reconnect()
399 cifs_abort_connection(server); in __cifs_reconnect()
403 cifs_server_lock(server); in __cifs_reconnect()
405 if (!cifs_swn_set_server_dstaddr(server)) { in __cifs_reconnect()
407 rc = reconn_set_ipaddr_from_hostname(server); in __cifs_reconnect()
411 if (cifs_rdma_enabled(server)) in __cifs_reconnect()
412 rc = smbd_reconnect(server); in __cifs_reconnect()
414 rc = generic_ip_connect(server); in __cifs_reconnect()
416 cifs_server_unlock(server); in __cifs_reconnect()
421 set_credits(server, 1); in __cifs_reconnect()
422 spin_lock(&server->srv_lock); in __cifs_reconnect()
423 if (server->tcpStatus != CifsExiting) in __cifs_reconnect()
424 server->tcpStatus = CifsNeedNegotiate; in __cifs_reconnect()
425 spin_unlock(&server->srv_lock); in __cifs_reconnect()
426 cifs_swn_reset_server_dstaddr(server); in __cifs_reconnect()
427 cifs_server_unlock(server); in __cifs_reconnect()
428 mod_delayed_work(cifsiod_wq, &server->reconnect, 0); in __cifs_reconnect()
430 } while (server->tcpStatus == CifsNeedReconnect); in __cifs_reconnect()
432 spin_lock(&server->srv_lock); in __cifs_reconnect()
433 if (server->tcpStatus == CifsNeedNegotiate) in __cifs_reconnect()
434 mod_delayed_work(cifsiod_wq, &server->echo, 0); in __cifs_reconnect()
435 spin_unlock(&server->srv_lock); in __cifs_reconnect()
437 wake_up(&server->response_q); in __cifs_reconnect()
442 static int __reconnect_target_unlocked(struct TCP_Server_Info *server, const char *target) in __reconnect_target_unlocked() argument
447 if (!cifs_swn_set_server_dstaddr(server)) { in __reconnect_target_unlocked()
448 if (server->hostname != target) { in __reconnect_target_unlocked()
451 spin_lock(&server->srv_lock); in __reconnect_target_unlocked()
452 kfree(server->hostname); in __reconnect_target_unlocked()
453 server->hostname = hostname; in __reconnect_target_unlocked()
454 spin_unlock(&server->srv_lock); in __reconnect_target_unlocked()
459 server->hostname); in __reconnect_target_unlocked()
463 rc = reconn_set_ipaddr_from_hostname(server); in __reconnect_target_unlocked()
467 if (cifs_rdma_enabled(server)) in __reconnect_target_unlocked()
468 rc = smbd_reconnect(server); in __reconnect_target_unlocked()
470 rc = generic_ip_connect(server); in __reconnect_target_unlocked()
475 static int reconnect_target_unlocked(struct TCP_Server_Info *server, struct dfs_cache_tgt_list *tl, in reconnect_target_unlocked() argument
486 return __reconnect_target_unlocked(server, server->hostname); in reconnect_target_unlocked()
490 rc = __reconnect_target_unlocked(server, dfs_cache_get_tgt_name(tit)); in reconnect_target_unlocked()
499 static int reconnect_dfs_server(struct TCP_Server_Info *server) in reconnect_dfs_server() argument
515 mutex_lock(&server->refpath_lock); in reconnect_dfs_server()
516 if (!dfs_cache_noreq_find(server->leaf_fullpath + 1, NULL, &tl)) in reconnect_dfs_server()
518 mutex_unlock(&server->refpath_lock); in reconnect_dfs_server()
522 if (!cifs_tcp_ses_needs_reconnect(server, num_targets)) in reconnect_dfs_server()
530 cifs_mark_tcp_ses_conns_for_reconnect(server, true); in reconnect_dfs_server()
532 cifs_abort_connection(server); in reconnect_dfs_server()
536 cifs_server_lock(server); in reconnect_dfs_server()
538 rc = reconnect_target_unlocked(server, &tl, &target_hint); in reconnect_dfs_server()
541 cifs_server_unlock(server); in reconnect_dfs_server()
552 set_credits(server, 1); in reconnect_dfs_server()
553 spin_lock(&server->srv_lock); in reconnect_dfs_server()
554 if (server->tcpStatus != CifsExiting) in reconnect_dfs_server()
555 server->tcpStatus = CifsNeedNegotiate; in reconnect_dfs_server()
556 spin_unlock(&server->srv_lock); in reconnect_dfs_server()
557 cifs_swn_reset_server_dstaddr(server); in reconnect_dfs_server()
558 cifs_server_unlock(server); in reconnect_dfs_server()
559 mod_delayed_work(cifsiod_wq, &server->reconnect, 0); in reconnect_dfs_server()
560 } while (server->tcpStatus == CifsNeedReconnect); in reconnect_dfs_server()
562 mutex_lock(&server->refpath_lock); in reconnect_dfs_server()
563 dfs_cache_noreq_update_tgthint(server->leaf_fullpath + 1, target_hint); in reconnect_dfs_server()
564 mutex_unlock(&server->refpath_lock); in reconnect_dfs_server()
568 spin_lock(&server->srv_lock); in reconnect_dfs_server()
569 if (server->tcpStatus == CifsNeedNegotiate) in reconnect_dfs_server()
570 mod_delayed_work(cifsiod_wq, &server->echo, 0); in reconnect_dfs_server()
571 spin_unlock(&server->srv_lock); in reconnect_dfs_server()
573 wake_up(&server->response_q); in reconnect_dfs_server()
577 int cifs_reconnect(struct TCP_Server_Info *server, bool mark_smb_session) in cifs_reconnect() argument
579 mutex_lock(&server->refpath_lock); in cifs_reconnect()
580 if (!server->leaf_fullpath) { in cifs_reconnect()
581 mutex_unlock(&server->refpath_lock); in cifs_reconnect()
582 return __cifs_reconnect(server, mark_smb_session); in cifs_reconnect()
584 mutex_unlock(&server->refpath_lock); in cifs_reconnect()
586 return reconnect_dfs_server(server); in cifs_reconnect()
589 int cifs_reconnect(struct TCP_Server_Info *server, bool mark_smb_session) in cifs_reconnect() argument
591 return __cifs_reconnect(server, mark_smb_session); in cifs_reconnect()
599 struct TCP_Server_Info *server = container_of(work, in cifs_echo_request() local
607 if (server->tcpStatus == CifsNeedReconnect || in cifs_echo_request()
608 server->tcpStatus == CifsExiting || in cifs_echo_request()
609 server->tcpStatus == CifsNew || in cifs_echo_request()
610 (server->ops->can_echo && !server->ops->can_echo(server)) || in cifs_echo_request()
611 time_before(jiffies, server->lstrp + server->echo_interval - HZ)) in cifs_echo_request()
614 rc = server->ops->echo ? server->ops->echo(server) : -ENOSYS; in cifs_echo_request()
621 queue_delayed_work(cifsiod_wq, &server->echo, server->echo_interval); in cifs_echo_request()
625 allocate_buffers(struct TCP_Server_Info *server) in allocate_buffers() argument
627 if (!server->bigbuf) { in allocate_buffers()
628 server->bigbuf = (char *)cifs_buf_get(); in allocate_buffers()
629 if (!server->bigbuf) { in allocate_buffers()
635 } else if (server->large_buf) { in allocate_buffers()
637 memset(server->bigbuf, 0, HEADER_SIZE(server)); in allocate_buffers()
640 if (!server->smallbuf) { in allocate_buffers()
641 server->smallbuf = (char *)cifs_small_buf_get(); in allocate_buffers()
642 if (!server->smallbuf) { in allocate_buffers()
651 memset(server->smallbuf, 0, HEADER_SIZE(server)); in allocate_buffers()
658 server_unresponsive(struct TCP_Server_Info *server) in server_unresponsive() argument
666 spin_lock(&server->srv_lock); in server_unresponsive()
667 if (server->tcpStatus == CifsInNegotiate && in server_unresponsive()
668 time_after(jiffies, server->lstrp + 20 * HZ)) { in server_unresponsive()
669 spin_unlock(&server->srv_lock); in server_unresponsive()
670 cifs_reconnect(server, false); in server_unresponsive()
684 if ((server->tcpStatus == CifsGood || in server_unresponsive()
685 server->tcpStatus == CifsNeedNegotiate) && in server_unresponsive()
686 (!server->ops->can_echo || server->ops->can_echo(server)) && in server_unresponsive()
687 time_after(jiffies, server->lstrp + 3 * server->echo_interval)) { in server_unresponsive()
688 spin_unlock(&server->srv_lock); in server_unresponsive()
690 (3 * server->echo_interval) / HZ); in server_unresponsive()
691 cifs_reconnect(server, false); in server_unresponsive()
694 spin_unlock(&server->srv_lock); in server_unresponsive()
700 zero_credits(struct TCP_Server_Info *server) in zero_credits() argument
704 spin_lock(&server->req_lock); in zero_credits()
705 val = server->credits + server->echo_credits + server->oplock_credits; in zero_credits()
706 if (server->in_flight == 0 && val == 0) { in zero_credits()
707 spin_unlock(&server->req_lock); in zero_credits()
710 spin_unlock(&server->req_lock); in zero_credits()
715 cifs_readv_from_socket(struct TCP_Server_Info *server, struct msghdr *smb_msg) in cifs_readv_from_socket() argument
724 if (zero_credits(server)) { in cifs_readv_from_socket()
725 cifs_reconnect(server, false); in cifs_readv_from_socket()
729 if (server_unresponsive(server)) in cifs_readv_from_socket()
731 if (cifs_rdma_enabled(server) && server->smbd_conn) in cifs_readv_from_socket()
732 length = smbd_recv(server->smbd_conn, smb_msg); in cifs_readv_from_socket()
734 length = sock_recvmsg(server->ssocket, smb_msg, 0); in cifs_readv_from_socket()
736 spin_lock(&server->srv_lock); in cifs_readv_from_socket()
737 if (server->tcpStatus == CifsExiting) { in cifs_readv_from_socket()
738 spin_unlock(&server->srv_lock); in cifs_readv_from_socket()
742 if (server->tcpStatus == CifsNeedReconnect) { in cifs_readv_from_socket()
743 spin_unlock(&server->srv_lock); in cifs_readv_from_socket()
744 cifs_reconnect(server, false); in cifs_readv_from_socket()
747 spin_unlock(&server->srv_lock); in cifs_readv_from_socket()
764 cifs_reconnect(server, false); in cifs_readv_from_socket()
772 cifs_read_from_socket(struct TCP_Server_Info *server, char *buf, in cifs_read_from_socket() argument
780 return cifs_readv_from_socket(server, &smb_msg); in cifs_read_from_socket()
784 cifs_discard_from_socket(struct TCP_Server_Info *server, size_t to_read) in cifs_discard_from_socket() argument
795 return cifs_readv_from_socket(server, &smb_msg); in cifs_discard_from_socket()
799 cifs_read_page_from_socket(struct TCP_Server_Info *server, struct page *page, in cifs_read_page_from_socket() argument
807 return cifs_readv_from_socket(server, &smb_msg); in cifs_read_page_from_socket()
811 cifs_read_iter_from_socket(struct TCP_Server_Info *server, struct iov_iter *iter, in cifs_read_iter_from_socket() argument
818 ret = cifs_readv_from_socket(server, &smb_msg); in cifs_read_iter_from_socket()
825 is_smb_response(struct TCP_Server_Info *server, unsigned char type) in is_smb_response() argument
856 cifs_set_port((struct sockaddr *)&server->dstaddr, CIFS_PORT); in is_smb_response()
857 cifs_reconnect(server, true); in is_smb_response()
861 cifs_reconnect(server, true); in is_smb_response()
873 spin_lock(&mid->server->mid_lock); in dequeue_mid()
883 spin_unlock(&mid->server->mid_lock); in dequeue_mid()
888 spin_unlock(&mid->server->mid_lock); in dequeue_mid()
893 smb2_get_credits_from_hdr(char *buffer, struct TCP_Server_Info *server) in smb2_get_credits_from_hdr() argument
900 if (is_smb1(server)) in smb2_get_credits_from_hdr()
907 handle_mid(struct mid_q_entry *mid, struct TCP_Server_Info *server, in handle_mid() argument
910 if (server->ops->check_trans2 && in handle_mid()
911 server->ops->check_trans2(mid, server, buf, malformed)) in handle_mid()
913 mid->credits_received = smb2_get_credits_from_hdr(buf, server); in handle_mid()
915 mid->large_buf = server->large_buf; in handle_mid()
919 if (server->large_buf) in handle_mid()
920 server->bigbuf = NULL; in handle_mid()
922 server->smallbuf = NULL; in handle_mid()
928 cifs_enable_signing(struct TCP_Server_Info *server, bool mnt_sign_required) in cifs_enable_signing() argument
930 bool srv_sign_required = server->sec_mode & server->vals->signing_required; in cifs_enable_signing()
931 bool srv_sign_enabled = server->sec_mode & server->vals->signing_enabled; in cifs_enable_signing()
955 server->sign = true; in cifs_enable_signing()
964 server->sign = true; in cifs_enable_signing()
967 if (cifs_rdma_enabled(server) && server->sign) in cifs_enable_signing()
974 clean_demultiplex_info(struct TCP_Server_Info *server) in clean_demultiplex_info() argument
979 spin_lock(&server->srv_lock); in clean_demultiplex_info()
980 list_del_init(&server->tcp_ses_list); in clean_demultiplex_info()
981 spin_unlock(&server->srv_lock); in clean_demultiplex_info()
983 cancel_delayed_work_sync(&server->echo); in clean_demultiplex_info()
985 spin_lock(&server->srv_lock); in clean_demultiplex_info()
986 server->tcpStatus = CifsExiting; in clean_demultiplex_info()
987 spin_unlock(&server->srv_lock); in clean_demultiplex_info()
988 wake_up_all(&server->response_q); in clean_demultiplex_info()
991 spin_lock(&server->req_lock); in clean_demultiplex_info()
992 if (server->credits <= 0) in clean_demultiplex_info()
993 server->credits = 1; in clean_demultiplex_info()
994 spin_unlock(&server->req_lock); in clean_demultiplex_info()
1002 wake_up_all(&server->request_q); in clean_demultiplex_info()
1005 if (cifs_rdma_enabled(server)) in clean_demultiplex_info()
1006 smbd_destroy(server); in clean_demultiplex_info()
1008 if (server->ssocket) { in clean_demultiplex_info()
1009 sock_release(server->ssocket); in clean_demultiplex_info()
1010 server->ssocket = NULL; in clean_demultiplex_info()
1013 put_net(cifs_net_ns(server)); in clean_demultiplex_info()
1016 if (!list_empty(&server->pending_mid_q)) { in clean_demultiplex_info()
1022 spin_lock(&server->mid_lock); in clean_demultiplex_info()
1023 list_for_each_safe(tmp, tmp2, &server->pending_mid_q) { in clean_demultiplex_info()
1031 spin_unlock(&server->mid_lock); in clean_demultiplex_info()
1045 if (!list_empty(&server->pending_mid_q)) { in clean_demultiplex_info()
1063 put_net(cifs_net_ns(server)); in clean_demultiplex_info()
1064 kfree(server->leaf_fullpath); in clean_demultiplex_info()
1065 kfree(server->hostname); in clean_demultiplex_info()
1066 kfree(server); in clean_demultiplex_info()
1074 standard_receive3(struct TCP_Server_Info *server, struct mid_q_entry *mid) in standard_receive3() argument
1077 char *buf = server->smallbuf; in standard_receive3()
1078 unsigned int pdu_length = server->pdu_size; in standard_receive3()
1081 if (pdu_length > CIFSMaxBufSize + MAX_HEADER_SIZE(server) - in standard_receive3()
1082 HEADER_PREAMBLE_SIZE(server)) { in standard_receive3()
1084 cifs_reconnect(server, true); in standard_receive3()
1090 server->large_buf = true; in standard_receive3()
1091 memcpy(server->bigbuf, buf, server->total_read); in standard_receive3()
1092 buf = server->bigbuf; in standard_receive3()
1096 length = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1, in standard_receive3()
1097 pdu_length - MID_HEADER_SIZE(server)); in standard_receive3()
1101 server->total_read += length; in standard_receive3()
1103 dump_smb(buf, server->total_read); in standard_receive3()
1105 return cifs_handle_standard(server, mid); in standard_receive3()
1109 cifs_handle_standard(struct TCP_Server_Info *server, struct mid_q_entry *mid) in cifs_handle_standard() argument
1111 char *buf = server->large_buf ? server->bigbuf : server->smallbuf; in cifs_handle_standard()
1122 rc = server->ops->check_message(buf, server->total_read, server); in cifs_handle_standard()
1125 min_t(unsigned int, server->total_read, 48)); in cifs_handle_standard()
1127 if (server->ops->is_session_expired && in cifs_handle_standard()
1128 server->ops->is_session_expired(buf)) { in cifs_handle_standard()
1129 cifs_reconnect(server, true); in cifs_handle_standard()
1133 if (server->ops->is_status_pending && in cifs_handle_standard()
1134 server->ops->is_status_pending(buf, server)) in cifs_handle_standard()
1140 handle_mid(mid, server, buf, rc); in cifs_handle_standard()
1145 smb2_add_credits_from_hdr(char *buffer, struct TCP_Server_Info *server) in smb2_add_credits_from_hdr() argument
1153 if (is_smb1(server)) in smb2_add_credits_from_hdr()
1157 spin_lock(&server->req_lock); in smb2_add_credits_from_hdr()
1158 server->credits += le16_to_cpu(shdr->CreditRequest); in smb2_add_credits_from_hdr()
1159 scredits = server->credits; in smb2_add_credits_from_hdr()
1160 in_flight = server->in_flight; in smb2_add_credits_from_hdr()
1161 spin_unlock(&server->req_lock); in smb2_add_credits_from_hdr()
1162 wake_up(&server->request_q); in smb2_add_credits_from_hdr()
1164 trace_smb3_hdr_credits(server->CurrentMid, in smb2_add_credits_from_hdr()
1165 server->conn_id, server->hostname, scredits, in smb2_add_credits_from_hdr()
1178 struct TCP_Server_Info *server = p; in cifs_demultiplex_thread() local
1197 while (server->tcpStatus != CifsExiting) { in cifs_demultiplex_thread()
1201 if (!allocate_buffers(server)) in cifs_demultiplex_thread()
1204 server->large_buf = false; in cifs_demultiplex_thread()
1205 buf = server->smallbuf; in cifs_demultiplex_thread()
1208 length = cifs_read_from_socket(server, buf, pdu_length); in cifs_demultiplex_thread()
1212 if (is_smb1(server)) in cifs_demultiplex_thread()
1213 server->total_read = length; in cifs_demultiplex_thread()
1215 server->total_read = 0; in cifs_demultiplex_thread()
1224 if (!is_smb_response(server, buf[0])) in cifs_demultiplex_thread()
1229 server->pdu_size = pdu_length; in cifs_demultiplex_thread()
1232 if (server->pdu_size < MID_HEADER_SIZE(server)) { in cifs_demultiplex_thread()
1234 server->pdu_size); in cifs_demultiplex_thread()
1235 cifs_reconnect(server, true); in cifs_demultiplex_thread()
1240 length = cifs_read_from_socket(server, in cifs_demultiplex_thread()
1241 buf + HEADER_PREAMBLE_SIZE(server), in cifs_demultiplex_thread()
1242 MID_HEADER_SIZE(server)); in cifs_demultiplex_thread()
1245 server->total_read += length; in cifs_demultiplex_thread()
1247 if (server->ops->next_header) { in cifs_demultiplex_thread()
1248 if (server->ops->next_header(server, buf, &next_offset)) { in cifs_demultiplex_thread()
1251 cifs_reconnect(server, true); in cifs_demultiplex_thread()
1255 server->pdu_size = next_offset; in cifs_demultiplex_thread()
1262 if (server->ops->is_transform_hdr && in cifs_demultiplex_thread()
1263 server->ops->receive_transform && in cifs_demultiplex_thread()
1264 server->ops->is_transform_hdr(buf)) { in cifs_demultiplex_thread()
1265 length = server->ops->receive_transform(server, in cifs_demultiplex_thread()
1270 mids[0] = server->ops->find_mid(server, buf); in cifs_demultiplex_thread()
1275 length = standard_receive3(server, mids[0]); in cifs_demultiplex_thread()
1277 length = mids[0]->receive(server, mids[0]); in cifs_demultiplex_thread()
1287 if (server->ops->is_status_io_timeout && in cifs_demultiplex_thread()
1288 server->ops->is_status_io_timeout(buf)) { in cifs_demultiplex_thread()
1300 server->lstrp = jiffies; in cifs_demultiplex_thread()
1304 mids[i]->resp_buf_size = server->pdu_size; in cifs_demultiplex_thread()
1307 if (server->ops->is_network_name_deleted && in cifs_demultiplex_thread()
1308 server->ops->is_network_name_deleted(bufs[i], in cifs_demultiplex_thread()
1309 server)) { in cifs_demultiplex_thread()
1319 } else if (server->ops->is_oplock_break && in cifs_demultiplex_thread()
1320 server->ops->is_oplock_break(bufs[i], in cifs_demultiplex_thread()
1321 server)) { in cifs_demultiplex_thread()
1322 smb2_add_credits_from_hdr(bufs[i], server); in cifs_demultiplex_thread()
1328 HEADER_SIZE(server)); in cifs_demultiplex_thread()
1329 smb2_add_credits_from_hdr(bufs[i], server); in cifs_demultiplex_thread()
1331 if (server->ops->dump_detail) in cifs_demultiplex_thread()
1332 server->ops->dump_detail(bufs[i], in cifs_demultiplex_thread()
1333 server); in cifs_demultiplex_thread()
1334 cifs_dump_mids(server); in cifs_demultiplex_thread()
1339 if (pdu_length > server->pdu_size) { in cifs_demultiplex_thread()
1340 if (!allocate_buffers(server)) in cifs_demultiplex_thread()
1342 pdu_length -= server->pdu_size; in cifs_demultiplex_thread()
1343 server->total_read = 0; in cifs_demultiplex_thread()
1344 server->large_buf = false; in cifs_demultiplex_thread()
1345 buf = server->smallbuf; in cifs_demultiplex_thread()
1351 cifs_reconnect(server, true); in cifs_demultiplex_thread()
1356 cifs_buf_release(server->bigbuf); in cifs_demultiplex_thread()
1357 if (server->smallbuf) /* no sense logging a debug message if NULL */ in cifs_demultiplex_thread()
1358 cifs_small_buf_release(server->smallbuf); in cifs_demultiplex_thread()
1360 task_to_wake = xchg(&server->tsk, NULL); in cifs_demultiplex_thread()
1361 clean_demultiplex_info(server); in cifs_demultiplex_thread()
1462 match_port(struct TCP_Server_Info *server, struct sockaddr *addr) in match_port() argument
1467 if (server->rdma) in match_port()
1472 sport = &((struct sockaddr_in *) &server->dstaddr)->sin_port; in match_port()
1476 sport = &((struct sockaddr_in6 *) &server->dstaddr)->sin6_port; in match_port()
1495 static bool match_server_address(struct TCP_Server_Info *server, struct sockaddr *addr) in match_server_address() argument
1497 if (!cifs_match_ipaddr(addr, (struct sockaddr *)&server->dstaddr)) in match_server_address()
1504 match_security(struct TCP_Server_Info *server, struct smb3_fs_context *ctx) in match_security() argument
1511 if (server->ops->select_sectype(server, ctx->sectype) in match_security()
1520 if (ctx->sign && !server->sign) in match_security()
1527 static int match_server(struct TCP_Server_Info *server, in match_server() argument
1533 lockdep_assert_held(&server->srv_lock); in match_server()
1539 if (server->nosharesock) in match_server()
1544 if (server->vals->protocol_id < SMB30_PROT_ID) in match_server()
1548 if (server->vals->protocol_id < SMB21_PROT_ID) in match_server()
1550 } else if ((server->vals != ctx->vals) || (server->ops != ctx->ops)) in match_server()
1553 if (!net_eq(cifs_net_ns(server), current->nsproxy->net_ns)) in match_server()
1557 (struct sockaddr *)&server->srcaddr)) in match_server()
1574 if (server->leaf_fullpath) { in match_server()
1576 strcasecmp(server->leaf_fullpath, in match_server()
1582 } else if (server->leaf_fullpath) { in match_server()
1591 if (!server->leaf_fullpath && in match_server()
1592 (strcasecmp(server->hostname, ctx->server_hostname) || in match_server()
1593 !match_server_address(server, addr) || in match_server()
1594 !match_port(server, addr))) in match_server()
1597 if (!match_security(server, ctx)) in match_server()
1600 if (server->echo_interval != ctx->echo_interval * HZ) in match_server()
1603 if (server->rdma != ctx->rdma) in match_server()
1606 if (server->ignore_signature != ctx->ignore_signature) in match_server()
1609 if (server->min_offload != ctx->min_offload) in match_server()
1612 if (server->retrans != ctx->retrans) in match_server()
1621 struct TCP_Server_Info *server; in cifs_find_tcp_session() local
1624 list_for_each_entry(server, &cifs_tcp_ses_list, tcp_ses_list) { in cifs_find_tcp_session()
1625 spin_lock(&server->srv_lock); in cifs_find_tcp_session()
1630 if (SERVER_IS_CHAN(server) || in cifs_find_tcp_session()
1631 !match_server(server, ctx, false)) { in cifs_find_tcp_session()
1632 spin_unlock(&server->srv_lock); in cifs_find_tcp_session()
1635 spin_unlock(&server->srv_lock); in cifs_find_tcp_session()
1637 ++server->srv_count; in cifs_find_tcp_session()
1640 return server; in cifs_find_tcp_session()
1647 cifs_put_tcp_session(struct TCP_Server_Info *server, int from_reconnect) in cifs_put_tcp_session() argument
1652 if (--server->srv_count > 0) { in cifs_put_tcp_session()
1658 WARN_ON(server->srv_count < 0); in cifs_put_tcp_session()
1660 list_del_init(&server->tcp_ses_list); in cifs_put_tcp_session()
1663 cancel_delayed_work_sync(&server->echo); in cifs_put_tcp_session()
1672 cancel_delayed_work(&server->reconnect); in cifs_put_tcp_session()
1674 cancel_delayed_work_sync(&server->reconnect); in cifs_put_tcp_session()
1677 if (SERVER_IS_CHAN(server)) in cifs_put_tcp_session()
1678 cifs_put_tcp_session(server->primary_server, from_reconnect); in cifs_put_tcp_session()
1680 spin_lock(&server->srv_lock); in cifs_put_tcp_session()
1681 server->tcpStatus = CifsExiting; in cifs_put_tcp_session()
1682 spin_unlock(&server->srv_lock); in cifs_put_tcp_session()
1684 cifs_crypto_secmech_release(server); in cifs_put_tcp_session()
1686 kfree_sensitive(server->session_key.response); in cifs_put_tcp_session()
1687 server->session_key.response = NULL; in cifs_put_tcp_session()
1688 server->session_key.len = 0; in cifs_put_tcp_session()
1690 task = xchg(&server->tsk, NULL); in cifs_put_tcp_session()
1888 struct TCP_Server_Info *server = ses->server; in match_session() local
1901 ctx_sec = server->ops->select_sectype(server, ctx->sectype); in match_session()
1902 ses_sec = server->ops->select_sectype(server, ses->sectype); in match_session()
1982 struct TCP_Server_Info *server = ses->server; in cifs_setup_ipc() local
1989 if (server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION) in cifs_setup_ipc()
2003 spin_lock(&server->srv_lock); in cifs_setup_ipc()
2004 scnprintf(unc, sizeof(unc), "\\\\%s\\IPC$", server->hostname); in cifs_setup_ipc()
2005 spin_unlock(&server->srv_lock); in cifs_setup_ipc()
2011 rc = server->ops->tree_connect(xid, ses, unc, tcon, ctx->local_nls); in cifs_setup_ipc()
2031 cifs_find_smb_ses(struct TCP_Server_Info *server, struct smb3_fs_context *ctx) in cifs_find_smb_ses() argument
2036 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in cifs_find_smb_ses()
2060 struct TCP_Server_Info *server = ses->server; in __cifs_put_smb_ses() local
2081 cifs_chan_clear_need_reconnect(ses, server); in __cifs_put_smb_ses()
2084 do_logoff = ses->ses_status == SES_GOOD && server->ops->logoff; in __cifs_put_smb_ses()
2102 rc = server->ops->logoff(xid, ses); in __cifs_put_smb_ses()
2119 cifs_put_tcp_session(ses->chans[i].server, 0); in __cifs_put_smb_ses()
2120 ses->chans[i].server = NULL; in __cifs_put_smb_ses()
2126 ses->chans[0].server = NULL; in __cifs_put_smb_ses()
2130 cifs_put_tcp_session(server, 0); in __cifs_put_smb_ses()
2148 struct TCP_Server_Info *server = ses->server; in cifs_set_cifscreds() local
2158 switch (server->dstaddr.ss_family) { in cifs_set_cifscreds()
2160 sa = (struct sockaddr_in *)&server->dstaddr; in cifs_set_cifscreds()
2164 sa6 = (struct sockaddr_in6 *)&server->dstaddr; in cifs_set_cifscreds()
2169 server->dstaddr.ss_family); in cifs_set_cifscreds()
2298 cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb3_fs_context *ctx) in cifs_get_smb_ses() argument
2304 struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr; in cifs_get_smb_ses()
2305 struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr; in cifs_get_smb_ses()
2309 ses = cifs_find_smb_ses(server, ctx); in cifs_get_smb_ses()
2315 if (cifs_chan_needs_reconnect(ses, server)) { in cifs_get_smb_ses()
2322 rc = cifs_negotiate_protocol(xid, ses, server); in cifs_get_smb_ses()
2331 rc = cifs_setup_session(xid, ses, server, in cifs_get_smb_ses()
2354 cifs_put_tcp_session(server, 0); in cifs_get_smb_ses()
2367 ses->server = server; in cifs_get_smb_ses()
2368 if (server->dstaddr.ss_family == AF_INET6) in cifs_get_smb_ses()
2410 ses->chans[0].server = server; in cifs_get_smb_ses()
2418 rc = cifs_negotiate_protocol(xid, ses, server); in cifs_get_smb_ses()
2420 rc = cifs_setup_session(xid, ses, server, ctx->local_nls); in cifs_get_smb_ses()
2449 list_add(&ses->smb_ses_list, &server->smb_ses_list); in cifs_get_smb_ses()
2467 struct TCP_Server_Info *server = tcon->ses->server; in match_tcon() local
2477 } else if (!server->leaf_fullpath && in match_tcon()
2566 if (ses->server->ops->tree_disconnect) in cifs_put_tcon()
2567 ses->server->ops->tree_disconnect(xid, tcon); in cifs_put_tcon()
2615 if (!ses->server->ops->tree_connect) { in cifs_get_tcon()
2620 if (ses->server->dialect >= SMB20_PROT_ID && in cifs_get_tcon()
2621 (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING)) in cifs_get_tcon()
2633 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2643 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2662 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2667 } else if (tcon->ses->server->capabilities & in cifs_get_tcon()
2678 if (ses->server->posix_ext_supported) { in cifs_get_tcon()
2681 } else if ((ses->server->vals->protocol_id == SMB311_PROT_ID) || in cifs_get_tcon()
2682 (strcmp(ses->server->vals->version_string, in cifs_get_tcon()
2684 (strcmp(ses->server->vals->version_string, in cifs_get_tcon()
2689 } else if (ses->server->vals->protocol_id == SMB10_PROT_ID) in cifs_get_tcon()
2705 rc = ses->server->ops->tree_connect(xid, ses, ctx->UNC, tcon, in cifs_get_tcon()
2715 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2720 } else if (ses->server->capabilities & in cifs_get_tcon()
2730 && (ses->server->capabilities & SMB2_GLOBAL_CAP_PERSISTENT_HANDLES) in cifs_get_tcon()
2735 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2746 if (ses->server->vals->protocol_id >= SMB30_PROT_ID) { in cifs_get_tcon()
2781 if (ses->server->vals->protocol_id == 0) { in cifs_get_tcon()
2806 if (ses->server->dialect >= SMB30_PROT_ID && in cifs_get_tcon()
2807 (ses->server->capabilities & SMB2_GLOBAL_CAP_MULTI_CHANNEL)) { in cifs_get_tcon()
2947 tcp_srv = ses->server; in cifs_match_super()
3025 bind_socket(struct TCP_Server_Info *server) in bind_socket() argument
3029 if (server->srcaddr.ss_family != AF_UNSPEC) { in bind_socket()
3031 struct socket *socket = server->ssocket; in bind_socket()
3034 (struct sockaddr *) &server->srcaddr, in bind_socket()
3035 sizeof(server->srcaddr)); in bind_socket()
3040 saddr4 = (struct sockaddr_in *)&server->srcaddr; in bind_socket()
3041 saddr6 = (struct sockaddr_in6 *)&server->srcaddr; in bind_socket()
3054 ip_rfc1001_connect(struct TCP_Server_Info *server) in ip_rfc1001_connect() argument
3068 if (server->server_RFC1001_name[0] != 0) in ip_rfc1001_connect()
3070 server->server_RFC1001_name, in ip_rfc1001_connect()
3080 if (server->workstation_RFC1001_name[0] != 0) in ip_rfc1001_connect()
3082 server->workstation_RFC1001_name, in ip_rfc1001_connect()
3096 rc = smb_send(server, smb_buf, len); in ip_rfc1001_connect()
3109 generic_ip_connect(struct TCP_Server_Info *server) in generic_ip_connect() argument
3117 saddr = (struct sockaddr *) &server->dstaddr; in generic_ip_connect()
3119 if (server->dstaddr.ss_family == AF_INET6) { in generic_ip_connect()
3120 struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)&server->dstaddr; in generic_ip_connect()
3128 struct sockaddr_in *ipv4 = (struct sockaddr_in *)&server->dstaddr; in generic_ip_connect()
3137 if (server->ssocket) { in generic_ip_connect()
3138 socket = server->ssocket; in generic_ip_connect()
3140 struct net *net = cifs_net_ns(server); in generic_ip_connect()
3142 rc = sock_create_kern(net, sfamily, SOCK_STREAM, IPPROTO_TCP, &server->ssocket); in generic_ip_connect()
3162 socket = server->ssocket; in generic_ip_connect()
3171 rc = bind_socket(server); in generic_ip_connect()
3184 if (server->noautotune) { in generic_ip_connect()
3191 if (server->tcp_nodelay) in generic_ip_connect()
3199 server->noblockcnt ? O_NONBLOCK : 0); in generic_ip_connect()
3205 if (server->noblockcnt && rc == -EINPROGRESS) in generic_ip_connect()
3209 trace_smb3_connect_err(server->hostname, server->conn_id, &server->dstaddr, rc); in generic_ip_connect()
3210 put_net(cifs_net_ns(server)); in generic_ip_connect()
3212 server->ssocket = NULL; in generic_ip_connect()
3215 trace_smb3_connect_done(server->hostname, server->conn_id, &server->dstaddr); in generic_ip_connect()
3217 rc = ip_rfc1001_connect(server); in generic_ip_connect()
3223 ip_connect(struct TCP_Server_Info *server) in ip_connect() argument
3226 struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr; in ip_connect()
3227 struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr; in ip_connect()
3229 if (server->dstaddr.ss_family == AF_INET6) in ip_connect()
3240 rc = generic_ip_connect(server); in ip_connect()
3248 return generic_ip_connect(server); in ip_connect()
3421 else if (mnt_ctx->server) in cifs_mount_put_conns()
3422 cifs_put_tcp_session(mnt_ctx->server, 0); in cifs_mount_put_conns()
3425 mnt_ctx->server = NULL; in cifs_mount_put_conns()
3432 struct TCP_Server_Info *server = NULL; in cifs_mount_get_session() local
3447 server = cifs_get_tcp_session(ctx, NULL); in cifs_mount_get_session()
3448 if (IS_ERR(server)) { in cifs_mount_get_session()
3449 rc = PTR_ERR(server); in cifs_mount_get_session()
3450 server = NULL; in cifs_mount_get_session()
3455 ses = cifs_get_smb_ses(server, ctx); in cifs_mount_get_session()
3462 if ((ctx->persistent == true) && (!(ses->server->capabilities & in cifs_mount_get_session()
3470 mnt_ctx->server = server; in cifs_mount_get_session()
3479 struct TCP_Server_Info *server; in cifs_mount_get_tcon() local
3485 if (WARN_ON_ONCE(!mnt_ctx || !mnt_ctx->server || !mnt_ctx->ses || !mnt_ctx->fs_ctx || in cifs_mount_get_tcon()
3490 server = mnt_ctx->server; in cifs_mount_get_tcon()
3514 spin_lock(&tcon->ses->server->srv_lock); in cifs_mount_get_tcon()
3515 if ((tcon->ses->server->tcpStatus == CifsNeedReconnect) && in cifs_mount_get_tcon()
3518 spin_unlock(&tcon->ses->server->srv_lock); in cifs_mount_get_tcon()
3522 spin_unlock(&tcon->ses->server->srv_lock); in cifs_mount_get_tcon()
3528 if (!tcon->pipe && server->ops->qfs_tcon) { in cifs_mount_get_tcon()
3529 server->ops->qfs_tcon(mnt_ctx->xid, tcon, cifs_sb); in cifs_mount_get_tcon()
3547 (cifs_sb->ctx->wsize > server->ops->negotiate_wsize(tcon, ctx))) { in cifs_mount_get_tcon()
3549 round_down(server->ops->negotiate_wsize(tcon, ctx), PAGE_SIZE); in cifs_mount_get_tcon()
3560 (cifs_sb->ctx->rsize > server->ops->negotiate_rsize(tcon, ctx))) in cifs_mount_get_tcon()
3561 cifs_sb->ctx->rsize = server->ops->negotiate_rsize(tcon, ctx); in cifs_mount_get_tcon()
3603 cifs_are_all_path_components_accessible(struct TCP_Server_Info *server, in cifs_are_all_path_components_accessible() argument
3618 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb, ""); in cifs_are_all_path_components_accessible()
3642 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb, in cifs_are_all_path_components_accessible()
3658 struct TCP_Server_Info *server = mnt_ctx->server; in cifs_is_path_remote() local
3664 if (!server->ops->is_path_accessible) in cifs_is_path_remote()
3677 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb, in cifs_is_path_remote()
3683 rc = cifs_are_all_path_components_accessible(server, xid, tcon, in cifs_is_path_remote()
3753 if (WARN_ON(!mnt_ctx.server)) in cifs_mount()
3812 smb_buffer->Mid = get_next_mid(ses->server); in CIFSTCon()
3826 if (ses->server->sign) in CIFSTCon()
3961 struct TCP_Server_Info *server) in cifs_negotiate_protocol() argument
3965 if (!server->ops->need_neg || !server->ops->negotiate) in cifs_negotiate_protocol()
3969 spin_lock(&server->srv_lock); in cifs_negotiate_protocol()
3970 if (server->tcpStatus != CifsGood && in cifs_negotiate_protocol()
3971 server->tcpStatus != CifsNew && in cifs_negotiate_protocol()
3972 server->tcpStatus != CifsNeedNegotiate) { in cifs_negotiate_protocol()
3973 spin_unlock(&server->srv_lock); in cifs_negotiate_protocol()
3977 if (!server->ops->need_neg(server) && in cifs_negotiate_protocol()
3978 server->tcpStatus == CifsGood) { in cifs_negotiate_protocol()
3979 spin_unlock(&server->srv_lock); in cifs_negotiate_protocol()
3983 server->tcpStatus = CifsInNegotiate; in cifs_negotiate_protocol()
3984 spin_unlock(&server->srv_lock); in cifs_negotiate_protocol()
3986 rc = server->ops->negotiate(xid, ses, server); in cifs_negotiate_protocol()
3988 spin_lock(&server->srv_lock); in cifs_negotiate_protocol()
3989 if (server->tcpStatus == CifsInNegotiate) in cifs_negotiate_protocol()
3990 server->tcpStatus = CifsGood; in cifs_negotiate_protocol()
3993 spin_unlock(&server->srv_lock); in cifs_negotiate_protocol()
3995 spin_lock(&server->srv_lock); in cifs_negotiate_protocol()
3996 if (server->tcpStatus == CifsInNegotiate) in cifs_negotiate_protocol()
3997 server->tcpStatus = CifsNeedNegotiate; in cifs_negotiate_protocol()
3998 spin_unlock(&server->srv_lock); in cifs_negotiate_protocol()
4006 struct TCP_Server_Info *server, in cifs_setup_session() argument
4010 struct TCP_Server_Info *pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in cifs_setup_session()
4036 cifs_chan_set_in_reconnect(ses, server); in cifs_setup_session()
4049 if (server == pserver) { in cifs_setup_session()
4050 if (server->dstaddr.ss_family == AF_INET6) in cifs_setup_session()
4057 ses->capabilities = server->capabilities; in cifs_setup_session()
4059 ses->capabilities &= (~server->vals->cap_unix); in cifs_setup_session()
4071 server->sec_mode, server->capabilities, server->timeAdj); in cifs_setup_session()
4073 if (server->ops->sess_setup) in cifs_setup_session()
4074 rc = server->ops->sess_setup(xid, ses, server, nls_info); in cifs_setup_session()
4082 cifs_chan_clear_in_reconnect(ses, server); in cifs_setup_session()
4090 cifs_chan_clear_in_reconnect(ses, server); in cifs_setup_session()
4091 cifs_chan_clear_need_reconnect(ses, server); in cifs_setup_session()
4153 ++master_tcon->ses->server->srv_count; in __cifs_construct_tcon()
4156 ses = cifs_get_smb_ses(master_tcon->ses->server, ctx); in __cifs_construct_tcon()
4159 cifs_put_tcp_session(master_tcon->ses->server, 0); in __cifs_construct_tcon()
4408 const struct smb_version_operations *ops = tcon->ses->server->ops; in cifs_tree_connect()