Lines Matching refs:server
73 /* Drop the connection to not overload the server */
283 static int ip_connect(struct TCP_Server_Info *server);
284 static int generic_ip_connect(struct TCP_Server_Info *server);
293 * This should be called with server->srv_mutex held.
296 static int reconn_set_ipaddr(struct TCP_Server_Info *server)
302 if (!server->hostname)
305 len = strlen(server->hostname) + 3;
312 scnprintf(unc, len, "\\\\%s", server->hostname);
318 cifs_dbg(FYI, "%s: failed to resolve server part of %s to IP: %d\n",
319 __func__, server->hostname, rc);
324 rc = cifs_convert_address((struct sockaddr *)&server->dstaddr, ipaddr,
332 static inline int reconn_set_ipaddr(struct TCP_Server_Info *server)
339 /* These functions must be called with server->srv_mutex held */
340 static void reconn_set_next_dfs_target(struct TCP_Server_Info *server,
362 kfree(server->hostname);
364 server->hostname = extract_hostname(name);
365 if (IS_ERR(server->hostname)) {
368 __func__, PTR_ERR(server->hostname));
390 cifs_reconnect(struct TCP_Server_Info *server)
406 server->nr_targets = 1;
409 sb = cifs_get_tcp_super(server);
425 server->nr_targets = dfs_cache_get_nr_tgts(&tgt_list);
429 server->nr_targets);
432 if (server->tcpStatus == CifsExiting) {
440 wake_up(&server->response_q);
443 server->tcpStatus = CifsNeedReconnect;
445 server->maxBuf = 0;
446 server->max_read = 0;
449 trace_smb3_reconnect(server->CurrentMid, server->hostname);
456 list_for_each(tmp, &server->smb_ses_list) {
470 mutex_lock(&server->srv_mutex);
471 if (server->ssocket) {
473 server->ssocket->state, server->ssocket->flags);
474 kernel_sock_shutdown(server->ssocket, SHUT_WR);
476 server->ssocket->state, server->ssocket->flags);
477 sock_release(server->ssocket);
478 server->ssocket = NULL;
480 server->sequence_number = 0;
481 server->session_estab = false;
482 kfree(server->session_key.response);
483 server->session_key.response = NULL;
484 server->session_key.len = 0;
485 server->lstrp = jiffies;
491 list_for_each_safe(tmp, tmp2, &server->pending_mid_q) {
500 mutex_unlock(&server->srv_mutex);
510 if (cifs_rdma_enabled(server)) {
511 mutex_lock(&server->srv_mutex);
512 smbd_destroy(server);
513 mutex_unlock(&server->srv_mutex);
519 mutex_lock(&server->srv_mutex);
522 * Set up next DFS target server (if any) for reconnect. If DFS
523 * feature is disabled, then we will retry last server we
526 reconn_set_next_dfs_target(server, cifs_sb, &tgt_list, &tgt_it);
528 rc = reconn_set_ipaddr(server);
534 if (cifs_rdma_enabled(server))
535 rc = smbd_reconnect(server);
537 rc = generic_ip_connect(server);
540 mutex_unlock(&server->srv_mutex);
544 set_credits(server, 1);
546 if (server->tcpStatus != CifsExiting)
547 server->tcpStatus = CifsNeedNegotiate;
549 mutex_unlock(&server->srv_mutex);
551 } while (server->tcpStatus == CifsNeedReconnect);
561 rc = dfs_cache_update_vol(cifs_sb->origin_fullpath, server);
572 if (server->tcpStatus == CifsNeedNegotiate)
573 mod_delayed_work(cifsiod_wq, &server->echo, 0);
575 wake_up(&server->response_q);
583 struct TCP_Server_Info *server = container_of(work,
591 if (server->tcpStatus == CifsNeedNegotiate)
594 echo_interval = server->echo_interval;
601 if (server->tcpStatus == CifsNeedReconnect ||
602 server->tcpStatus == CifsExiting ||
603 server->tcpStatus == CifsNew ||
604 (server->ops->can_echo && !server->ops->can_echo(server)) ||
605 time_before(jiffies, server->lstrp + echo_interval - HZ))
608 rc = server->ops->echo ? server->ops->echo(server) : -ENOSYS;
610 cifs_dbg(FYI, "Unable to send echo request to server: %s\n",
611 server->hostname);
614 queue_delayed_work(cifsiod_wq, &server->echo, server->echo_interval);
618 allocate_buffers(struct TCP_Server_Info *server)
620 if (!server->bigbuf) {
621 server->bigbuf = (char *)cifs_buf_get();
622 if (!server->bigbuf) {
628 } else if (server->large_buf) {
630 memset(server->bigbuf, 0, HEADER_SIZE(server));
633 if (!server->smallbuf) {
634 server->smallbuf = (char *)cifs_small_buf_get();
635 if (!server->smallbuf) {
644 memset(server->smallbuf, 0, HEADER_SIZE(server));
651 server_unresponsive(struct TCP_Server_Info *server)
664 if ((server->tcpStatus == CifsGood ||
665 server->tcpStatus == CifsNeedNegotiate) &&
666 (!server->ops->can_echo || server->ops->can_echo(server)) &&
667 time_after(jiffies, server->lstrp + 3 * server->echo_interval)) {
669 (3 * server->echo_interval) / HZ);
670 cifs_reconnect(server);
678 zero_credits(struct TCP_Server_Info *server)
682 spin_lock(&server->req_lock);
683 val = server->credits + server->echo_credits + server->oplock_credits;
684 if (server->in_flight == 0 && val == 0) {
685 spin_unlock(&server->req_lock);
688 spin_unlock(&server->req_lock);
693 cifs_readv_from_socket(struct TCP_Server_Info *server, struct msghdr *smb_msg)
702 if (zero_credits(server)) {
703 cifs_reconnect(server);
707 if (server_unresponsive(server))
709 if (cifs_rdma_enabled(server) && server->smbd_conn)
710 length = smbd_recv(server->smbd_conn, smb_msg);
712 length = sock_recvmsg(server->ssocket, smb_msg, 0);
714 if (server->tcpStatus == CifsExiting)
717 if (server->tcpStatus == CifsNeedReconnect) {
718 cifs_reconnect(server);
728 * CifsNeedReconnect if server hung.
737 cifs_reconnect(server);
745 cifs_read_from_socket(struct TCP_Server_Info *server, char *buf,
752 return cifs_readv_from_socket(server, &smb_msg);
756 cifs_discard_from_socket(struct TCP_Server_Info *server, size_t to_read)
767 return cifs_readv_from_socket(server, &smb_msg);
771 cifs_read_page_from_socket(struct TCP_Server_Info *server, struct page *page,
778 return cifs_readv_from_socket(server, &smb_msg);
782 is_smb_response(struct TCP_Server_Info *server, unsigned char type)
805 /* give server a second to clean up */
813 cifs_set_port((struct sockaddr *)&server->dstaddr, CIFS_PORT);
814 cifs_reconnect(server);
818 cifs_reconnect(server);
849 smb2_get_credits_from_hdr(char *buffer, struct TCP_Server_Info *server)
856 if (server->vals->header_preamble_size)
863 handle_mid(struct mid_q_entry *mid, struct TCP_Server_Info *server,
866 if (server->ops->check_trans2 &&
867 server->ops->check_trans2(mid, server, buf, malformed))
869 mid->credits_received = smb2_get_credits_from_hdr(buf, server);
871 mid->large_buf = server->large_buf;
875 if (server->large_buf)
876 server->bigbuf = NULL;
878 server->smallbuf = NULL;
883 static void clean_demultiplex_info(struct TCP_Server_Info *server)
889 list_del_init(&server->tcp_ses_list);
892 cancel_delayed_work_sync(&server->echo);
895 server->tcpStatus = CifsExiting;
897 wake_up_all(&server->response_q);
900 spin_lock(&server->req_lock);
901 if (server->credits <= 0)
902 server->credits = 1;
903 spin_unlock(&server->req_lock);
908 * same server - they now will see the session is in exit state and get
911 wake_up_all(&server->request_q);
914 if (cifs_rdma_enabled(server))
915 smbd_destroy(server);
916 if (server->ssocket) {
917 sock_release(server->ssocket);
918 server->ssocket = NULL;
921 if (!list_empty(&server->pending_mid_q)) {
928 list_for_each_safe(tmp, tmp2, &server->pending_mid_q) {
950 if (!list_empty(&server->pending_mid_q)) {
967 kfree(server->hostname);
968 kfree(server);
976 standard_receive3(struct TCP_Server_Info *server, struct mid_q_entry *mid)
979 char *buf = server->smallbuf;
980 unsigned int pdu_length = server->pdu_size;
983 if (pdu_length > CIFSMaxBufSize + MAX_HEADER_SIZE(server) -
984 server->vals->header_preamble_size) {
986 cifs_reconnect(server);
992 server->large_buf = true;
993 memcpy(server->bigbuf, buf, server->total_read);
994 buf = server->bigbuf;
998 length = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1,
999 pdu_length - HEADER_SIZE(server) + 1
1000 + server->vals->header_preamble_size);
1004 server->total_read += length;
1006 dump_smb(buf, server->total_read);
1008 return cifs_handle_standard(server, mid);
1012 cifs_handle_standard(struct TCP_Server_Info *server, struct mid_q_entry *mid)
1014 char *buf = server->large_buf ? server->bigbuf : server->smallbuf;
1026 length = server->ops->check_message(buf, server->total_read, server);
1029 min_t(unsigned int, server->total_read, 48));
1031 if (server->ops->is_session_expired &&
1032 server->ops->is_session_expired(buf)) {
1033 cifs_reconnect(server);
1037 if (server->ops->is_status_pending &&
1038 server->ops->is_status_pending(buf, server))
1044 handle_mid(mid, server, buf, length);
1049 smb2_add_credits_from_hdr(char *buffer, struct TCP_Server_Info *server)
1056 if (server->vals->header_preamble_size)
1060 spin_lock(&server->req_lock);
1061 server->credits += le16_to_cpu(shdr->CreditRequest);
1062 spin_unlock(&server->req_lock);
1063 wake_up(&server->request_q);
1072 struct TCP_Server_Info *server = p;
1090 while (server->tcpStatus != CifsExiting) {
1094 if (!allocate_buffers(server))
1097 server->large_buf = false;
1098 buf = server->smallbuf;
1101 length = cifs_read_from_socket(server, buf, pdu_length);
1105 if (server->vals->header_preamble_size == 0)
1106 server->total_read = 0;
1108 server->total_read = length;
1117 if (!is_smb_response(server, buf[0]))
1120 server->pdu_size = pdu_length;
1123 if (server->pdu_size < HEADER_SIZE(server) - 1 -
1124 server->vals->header_preamble_size) {
1126 server->pdu_size);
1127 cifs_reconnect(server);
1132 length = cifs_read_from_socket(server,
1133 buf + server->vals->header_preamble_size,
1134 HEADER_SIZE(server) - 1
1135 - server->vals->header_preamble_size);
1138 server->total_read += length;
1140 if (server->ops->next_header) {
1141 next_offset = server->ops->next_header(buf);
1143 server->pdu_size = next_offset;
1150 if (server->ops->is_transform_hdr &&
1151 server->ops->receive_transform &&
1152 server->ops->is_transform_hdr(buf)) {
1153 length = server->ops->receive_transform(server,
1158 mids[0] = server->ops->find_mid(server, buf);
1163 length = standard_receive3(server, mids[0]);
1165 length = mids[0]->receive(server, mids[0]);
1175 if (server->ops->is_status_io_timeout &&
1176 server->ops->is_status_io_timeout(buf)) {
1179 cifs_reconnect(server);
1185 server->lstrp = jiffies;
1189 mids[i]->resp_buf_size = server->pdu_size;
1195 } else if (server->ops->is_oplock_break &&
1196 server->ops->is_oplock_break(bufs[i],
1197 server)) {
1198 smb2_add_credits_from_hdr(bufs[i], server);
1204 HEADER_SIZE(server));
1205 smb2_add_credits_from_hdr(bufs[i], server);
1207 if (server->ops->dump_detail)
1208 server->ops->dump_detail(bufs[i],
1209 server);
1210 cifs_dump_mids(server);
1215 if (pdu_length > server->pdu_size) {
1216 if (!allocate_buffers(server))
1218 pdu_length -= server->pdu_size;
1219 server->total_read = 0;
1220 server->large_buf = false;
1221 buf = server->smallbuf;
1227 cifs_buf_release(server->bigbuf);
1228 if (server->smallbuf) /* no sense logging a debug message if NULL */
1229 cifs_small_buf_release(server->smallbuf);
1231 task_to_wake = xchg(&server->tsk, NULL);
1232 clean_demultiplex_info(server);
1234 /* if server->tsk was NULL then wait for a signal before exiting */
1447 /* default to using server inode numbers where available */
1455 /* Most clients set timeout to 0, allows server to use its default */
1464 /* default to no multichannel (single server connection) */
2160 pr_warn("server netbiosname longer than 15 truncated\n");
2319 * families of server and addr are equal.
2322 match_port(struct TCP_Server_Info *server, struct sockaddr *addr)
2327 if (server->rdma)
2332 sport = &((struct sockaddr_in *) &server->dstaddr)->sin_port;
2336 sport = &((struct sockaddr_in6 *) &server->dstaddr)->sin6_port;
2356 match_address(struct TCP_Server_Info *server, struct sockaddr *addr,
2363 (struct sockaddr_in *)&server->dstaddr;
2372 (struct sockaddr_in6 *)&server->dstaddr;
2386 if (!cifs_match_ipaddr(srcaddr, (struct sockaddr *)&server->srcaddr))
2393 match_security(struct TCP_Server_Info *server, struct smb_vol *vol)
2400 if (server->ops->select_sectype(server, vol->sectype)
2407 * the server->sign had better be too.
2409 if (vol->sign && !server->sign)
2415 static int match_server(struct TCP_Server_Info *server, struct smb_vol *vol)
2424 if (server->vals->protocol_id < SMB30_PROT_ID)
2428 if (server->vals->protocol_id < SMB21_PROT_ID)
2430 } else if ((server->vals != vol->vals) || (server->ops != vol->ops))
2433 if (!net_eq(cifs_net_ns(server), current->nsproxy->net_ns))
2436 if (!match_address(server, addr,
2440 if (!match_port(server, addr))
2443 if (!match_security(server, vol))
2446 if (server->echo_interval != vol->echo_interval * HZ)
2449 if (server->rdma != vol->rdma)
2452 if (server->ignore_signature != vol->ignore_signature)
2455 if (server->min_offload != vol->min_offload)
2464 struct TCP_Server_Info *server;
2467 list_for_each_entry(server, &cifs_tcp_ses_list, tcp_ses_list) {
2472 if (server->is_channel || !match_server(server, vol))
2475 ++server->srv_count;
2477 cifs_dbg(FYI, "Existing tcp session with server found\n");
2478 return server;
2485 cifs_put_tcp_session(struct TCP_Server_Info *server, int from_reconnect)
2490 if (--server->srv_count > 0) {
2495 put_net(cifs_net_ns(server));
2497 list_del_init(&server->tcp_ses_list);
2500 cancel_delayed_work_sync(&server->echo);
2506 * that reconnect work does nothing with server pointer after
2509 cancel_delayed_work(&server->reconnect);
2511 cancel_delayed_work_sync(&server->reconnect);
2514 server->tcpStatus = CifsExiting;
2517 cifs_crypto_secmech_release(server);
2518 cifs_fscache_release_client_cookie(server);
2520 kfree(server->session_key.response);
2521 server->session_key.response = NULL;
2522 server->session_key.len = 0;
2524 task = xchg(&server->tsk, NULL);
2735 struct TCP_Server_Info *server = ses->server;
2742 if (server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)
2746 "IPC: server doesn't support encryption\n");
2755 scnprintf(unc, sizeof(unc), "\\\\%s\\IPC$", server->hostname);
2764 rc = server->ops->tree_connect(xid, ses, unc, tcon, nls_codepage);
2795 if (ses->server->ops->tree_disconnect) {
2797 rc = ses->server->ops->tree_disconnect(xid, tcon);
2810 cifs_find_smb_ses(struct TCP_Server_Info *server, struct smb_vol *vol)
2815 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) {
2831 struct TCP_Server_Info *server = ses->server;
2853 if (ses->status == CifsExiting && server->ops->logoff) {
2855 rc = server->ops->logoff(xid, ses);
2871 cifs_put_tcp_session(ses->chans[i].server, 0);
2875 cifs_put_tcp_session(server, 0);
2893 struct TCP_Server_Info *server = ses->server;
2903 switch (server->dstaddr.ss_family) {
2905 sa = (struct sockaddr_in *)&server->dstaddr;
2909 sa6 = (struct sockaddr_in6 *)&server->dstaddr;
2914 server->dstaddr.ss_family);
3032 * cifs_get_smb_ses - get a session matching @volume_info data from @server
3035 * already got a server reference (server refcount +1). See
3039 cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb_vol *volume_info)
3044 struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr;
3045 struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr;
3049 ses = cifs_find_smb_ses(server, volume_info);
3077 /* existing SMB ses has a server reference already */
3078 cifs_put_tcp_session(server, 0);
3090 /* new SMB session uses our server ref */
3091 ses->server = server;
3092 if (server->dstaddr.ss_family == AF_INET6)
3123 /* add server as first channel */
3124 ses->chans[0].server = server;
3142 list_add(&ses->smb_ses_list, &server->smb_ses_list);
3224 if (ses->server->ops->tree_disconnect)
3225 ses->server->ops->tree_disconnect(xid, tcon);
3270 if (!ses->server->ops->tree_connect) {
3282 if (ses->server->vals->protocol_id == 0) {
3292 if (ses->server->vals->protocol_id == 0) {
3311 if (ses->server->vals->protocol_id == 0) {
3316 } else if (tcon->ses->server->capabilities &
3327 if (ses->server->posix_ext_supported) {
3342 rc = ses->server->ops->tree_connect(xid, ses, volume_info->UNC, tcon,
3352 if (ses->server->vals->protocol_id == 0) {
3357 } else if (ses->server->capabilities &
3367 && (ses->server->capabilities & SMB2_GLOBAL_CAP_PERSISTENT_HANDLES)
3372 if (ses->server->vals->protocol_id == 0) {
3390 if (ses->server->vals->protocol_id == 0) {
3401 * resources mounted more than once to the same server share the last
3406 if (ses->server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING)
3528 tcp_srv = ses->server;
3595 bind_socket(struct TCP_Server_Info *server)
3598 if (server->srcaddr.ss_family != AF_UNSPEC) {
3600 struct socket *socket = server->ssocket;
3602 (struct sockaddr *) &server->srcaddr,
3603 sizeof(server->srcaddr));
3607 saddr4 = (struct sockaddr_in *)&server->srcaddr;
3608 saddr6 = (struct sockaddr_in6 *)&server->srcaddr;
3621 ip_rfc1001_connect(struct TCP_Server_Info *server)
3636 if (server->server_RFC1001_name[0] != 0)
3639 server->server_RFC1001_name,
3653 if (server->workstation_RFC1001_name[0] != 0)
3656 server->workstation_RFC1001_name,
3670 rc = smb_send(server, smb_buf, 0x44);
3673 * RFC1001 layer in at least one server
3693 generic_ip_connect(struct TCP_Server_Info *server)
3698 struct socket *socket = server->ssocket;
3701 saddr = (struct sockaddr *) &server->dstaddr;
3703 if (server->dstaddr.ss_family == AF_INET6) {
3704 struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)&server->dstaddr;
3712 struct sockaddr_in *ipv4 = (struct sockaddr_in *)&server->dstaddr;
3722 rc = __sock_create(cifs_net_ns(server), sfamily, SOCK_STREAM,
3726 server->ssocket = NULL;
3732 server->ssocket = socket;
3740 rc = bind_socket(server);
3753 if (server->noautotune) {
3760 if (server->tcp_nodelay)
3768 server->noblockcnt ? O_NONBLOCK : 0);
3774 if (server->noblockcnt && rc == -EINPROGRESS)
3777 cifs_dbg(FYI, "Error %d connecting to server\n", rc);
3779 server->ssocket = NULL;
3784 rc = ip_rfc1001_connect(server);
3790 ip_connect(struct TCP_Server_Info *server)
3793 struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)&server->dstaddr;
3794 struct sockaddr_in *addr = (struct sockaddr_in *)&server->dstaddr;
3796 if (server->dstaddr.ss_family == AF_INET6)
3807 rc = generic_ip_connect(server);
3815 return generic_ip_connect(server);
3828 * What if we wanted to mount the server share twice once with
3847 cifs_dbg(FYI, "unix caps which server supports %lld\n", cap);
3861 cifs_dbg(VFS, "server disabled POSIX path support\n");
3912 cifs_dbg(VFS, "Negotiating Unix capabilities with the server failed. Consider mounting with the Unix Extensions disabled if problems are found by specifying the nounix mount option.\n");
4063 struct TCP_Server_Info *server,
4072 else if (server)
4073 cifs_put_tcp_session(server, 0);
4085 struct TCP_Server_Info *server;
4096 server = cifs_get_tcp_session(vol);
4097 if (IS_ERR(server)) {
4098 rc = PTR_ERR(server);
4102 *nserver = server;
4105 ses = cifs_get_smb_ses(server, vol);
4113 if ((vol->persistent == true) && (!(ses->server->capabilities &
4115 cifs_server_dbg(VFS, "persistent handles not supported by server\n");
4119 /* search for existing tcon to this server share */
4132 /* tell server which Unix caps we support */
4139 if ((tcon->ses->server->tcpStatus == CifsNeedReconnect) &&
4144 tcon->unix_ext = 0; /* server does not support them */
4147 if (!tcon->pipe && server->ops->qfs_tcon) {
4148 server->ops->qfs_tcon(*xid, tcon, cifs_sb);
4160 cifs_sb->wsize = server->ops->negotiate_wsize(tcon, vol);
4161 cifs_sb->rsize = server->ops->negotiate_rsize(tcon, vol);
4320 struct TCP_Server_Info **server, struct cifs_ses **ses,
4354 mount_put_conns(cifs_sb, *xid, *server, *ses, *tcon);
4355 rc = mount_get_conns(&fake_vol, cifs_sb, xid, server, ses,
4357 if (!rc || (*server && *ses)) {
4359 * We were able to connect to new target server.
4360 * Update current volume info with new target server.
4371 struct TCP_Server_Info **server, struct cifs_ses **ses,
4386 /* Get next DFS target server - if any */
4391 rc = setup_dfs_tgt_conn(path, full_path, tgt_it, cifs_sb, vol, xid, server, ses,
4393 if (!rc || (*server && *ses))
4399 * server we successfully reconnected to.
4470 cifs_are_all_path_components_accessible(struct TCP_Server_Info *server,
4485 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb, "");
4509 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb,
4522 struct TCP_Server_Info *server,
4528 if (!server->ops->is_path_accessible)
4541 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb,
4549 rc = cifs_are_all_path_components_accessible(server, xid, tcon,
4584 const unsigned int xid, struct TCP_Server_Info *server,
4623 rc = server->ops->is_path_accessible(xid, tcon, cifs_sb, path);
4657 struct TCP_Server_Info *server = NULL;
4665 rc = mount_get_conns(vol, cifs_sb, &xid, &server, &ses, &tcon);
4679 rc = is_path_remote(cifs_sb, vol, xid, server, tcon);
4701 /* Save full path of last DFS path we used to resolve final target server */
4716 mount_put_conns(cifs_sb, xid, server, ses, tcon);
4717 rc = mount_get_conns(vol, cifs_sb, &xid, &server, &ses, &tcon);
4719 if (rc && !server && !ses) {
4722 &server, &ses, &tcon);
4724 if (rc == -EACCES || rc == -EOPNOTSUPP || !server || !ses)
4734 rc = check_dfs_prepath(cifs_sb, vol, xid, server, tcon, &ref_path);
4770 * After reconnecting to a different server, unique ids won't
4795 mount_put_conns(cifs_sb, xid, server, ses, tcon);
4805 struct TCP_Server_Info *server;
4807 rc = mount_get_conns(vol, cifs_sb, &xid, &server, &ses, &tcon);
4812 rc = is_path_remote(cifs_sb, vol, xid, server, tcon);
4824 mount_put_conns(cifs_sb, xid, server, ses, tcon);
4858 smb_buffer->Mid = get_next_mid(ses->server);
4866 if (tcon->pipe || (ses->server->sec_mode & SECMODE_USER)) {
4882 calc_lanman_hash(tcon->password, ses->server->cryptkey,
4883 ses->server->sec_mode &
4888 rc = SMBNTencrypt(tcon->password, ses->server->cryptkey,
4905 if (ses->server->sign)
4919 (/* server len*/ + 256 /* share len */), nls_codepage);
5033 struct TCP_Server_Info *server = cifs_ses_server(ses);
5035 if (!server->ops->need_neg || !server->ops->negotiate)
5039 if (!server->ops->need_neg(server))
5042 rc = server->ops->negotiate(xid, ses);
5045 if (server->tcpStatus == CifsNeedNegotiate)
5046 server->tcpStatus = CifsGood;
5060 struct TCP_Server_Info *server = cifs_ses_server(ses);
5063 ses->capabilities = server->capabilities;
5065 ses->capabilities &= (~server->vals->cap_unix);
5077 server->sec_mode, server->capabilities, server->timeAdj);
5079 if (server->ops->sess_setup)
5080 rc = server->ops->sess_setup(xid, ses, nls_info);
5139 ++master_tcon->ses->server->srv_count;
5142 ses = cifs_get_smb_ses(master_tcon->ses->server, vol_info);
5145 cifs_put_tcp_session(master_tcon->ses->server, 0);
5353 struct TCP_Server_Info *server = tcon->ses->server;
5354 const struct smb_version_operations *ops = server->ops;
5373 scnprintf(tree, MAX_TREE_SIZE, "\\\\%s\\IPC$", server->hostname);
5384 extract_unc_hostname(server->hostname, &tcp_host, &tcp_host_len);
5408 rc = match_target_ip(server, dfs_host, dfs_host_len, &target_match);
5453 const struct smb_version_operations *ops = tcon->ses->server->ops;