Lines Matching full:server
81 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in smb3_encryption_required()
89 struct TCP_Server_Info *server) in smb2_hdr_assemble() argument
97 if (server) { in smb2_hdr_assemble()
99 if (server->dialect >= SMB30_PROT_ID) { in smb2_hdr_assemble()
105 if (SERVER_IS_CHAN(server)) in smb2_hdr_assemble()
107 cpu_to_le16(server->primary_server->channel_sequence_num); in smb2_hdr_assemble()
110 cpu_to_le16(server->channel_sequence_num); in smb2_hdr_assemble()
112 spin_lock(&server->req_lock); in smb2_hdr_assemble()
114 if (server->credits >= server->max_credits) in smb2_hdr_assemble()
118 min_t(int, server->max_credits - in smb2_hdr_assemble()
119 server->credits, 10)); in smb2_hdr_assemble()
120 spin_unlock(&server->req_lock); in smb2_hdr_assemble()
131 if (server && (server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_hdr_assemble()
142 * to pass the path on the Open SMB prefixed by \\server\share. in smb2_hdr_assemble()
145 * illegal to send an empty path name (without \\server\share prefix) in smb2_hdr_assemble()
153 if (server && server->sign && !smb3_encryption_required(tcon)) in smb2_hdr_assemble()
162 struct TCP_Server_Info *server, in cifs_chan_skip_or_disable() argument
168 if (SERVER_IS_CHAN(server)) { in cifs_chan_skip_or_disable()
170 "server %s does not support multichannel anymore. Skip secondary channel\n", in cifs_chan_skip_or_disable()
171 ses->server->hostname); in cifs_chan_skip_or_disable()
174 chan_index = cifs_ses_get_chan_index(ses, server); in cifs_chan_skip_or_disable()
180 ses->chans[chan_index].server = NULL; in cifs_chan_skip_or_disable()
181 server->terminate = true; in cifs_chan_skip_or_disable()
185 * the above reference of server by channel in cifs_chan_skip_or_disable()
190 cifs_put_tcp_session(server, from_reconnect); in cifs_chan_skip_or_disable()
192 cifs_signal_cifsd_for_reconnect(server, false); in cifs_chan_skip_or_disable()
194 /* mark primary server as needing reconnect */ in cifs_chan_skip_or_disable()
195 pserver = server->primary_server; in cifs_chan_skip_or_disable()
202 "server does not support multichannel anymore. Disable all other channels\n"); in cifs_chan_skip_or_disable()
211 struct TCP_Server_Info *server, bool from_reconnect) in smb2_reconnect() argument
256 if (!ses->server || !server) in smb2_reconnect()
259 spin_lock(&server->srv_lock); in smb2_reconnect()
260 if (server->tcpStatus == CifsNeedReconnect) { in smb2_reconnect()
273 spin_unlock(&server->srv_lock); in smb2_reconnect()
278 /* if server is marked for termination, cifsd will cleanup */ in smb2_reconnect()
279 if (server->terminate) { in smb2_reconnect()
280 spin_unlock(&server->srv_lock); in smb2_reconnect()
283 spin_unlock(&server->srv_lock); in smb2_reconnect()
286 rc = cifs_wait_for_server_reconnect(server, tcon->retry); in smb2_reconnect()
291 if (!cifs_chan_needs_reconnect(ses, server) && !tcon->need_reconnect) { in smb2_reconnect()
306 spin_lock(&server->srv_lock); in smb2_reconnect()
307 if (server->tcpStatus == CifsExiting) { in smb2_reconnect()
308 spin_unlock(&server->srv_lock); in smb2_reconnect()
316 * and the server never sends an answer the socket will be closed in smb2_reconnect()
319 if (server->tcpStatus == CifsNeedReconnect) { in smb2_reconnect()
320 spin_unlock(&server->srv_lock); in smb2_reconnect()
329 spin_unlock(&server->srv_lock); in smb2_reconnect()
339 if (!cifs_chan_needs_reconnect(ses, server) && in smb2_reconnect()
353 rc = cifs_negotiate_protocol(0, ses, server); in smb2_reconnect()
356 * if server stopped supporting multichannel in smb2_reconnect()
360 !(server->capabilities & SMB2_GLOBAL_CAP_MULTI_CHANNEL)) { in smb2_reconnect()
361 rc = cifs_chan_skip_or_disable(ses, server, in smb2_reconnect()
369 rc = cifs_setup_session(0, ses, server, nls_codepage); in smb2_reconnect()
412 (server->capabilities & SMB2_GLOBAL_CAP_MULTI_CHANNEL)) { in smb2_reconnect()
416 * query server network interfaces, in case they change in smb2_reconnect()
424 * some servers like Azure SMB server do not advertise in smb2_reconnect()
425 * that multichannel has been disabled with server in smb2_reconnect()
427 * treat this as server not supporting multichannel in smb2_reconnect()
430 rc = cifs_chan_skip_or_disable(ses, server, in smb2_reconnect()
434 cifs_dbg(FYI, "%s: failed to query server interfaces: %d\n", in smb2_reconnect()
439 !SERVER_IS_CHAN(server)) { in smb2_reconnect()
458 mod_delayed_work(cifsiod_wq, &server->reconnect, 0); in smb2_reconnect()
467 * BB Is flush done by server on drop of tcp session? Should we special in smb2_reconnect()
487 struct TCP_Server_Info *server, in fill_small_buf() argument
501 smb2_hdr_assemble(&spdu->hdr, smb2_command, tcon, server); in fill_small_buf()
513 struct TCP_Server_Info *server, in __smb2_plain_req_init() argument
531 fill_small_buf(smb2_command, tcon, server, in __smb2_plain_req_init()
545 struct TCP_Server_Info *server, in smb2_plain_req_init() argument
550 rc = smb2_reconnect(smb2_command, tcon, server, false); in smb2_plain_req_init()
554 return __smb2_plain_req_init(smb2_command, tcon, server, request_buf, in smb2_plain_req_init()
559 struct TCP_Server_Info *server, in smb2_ioctl_req_init() argument
564 return __smb2_plain_req_init(SMB2_IOCTL, tcon, server, in smb2_ioctl_req_init()
567 return smb2_plain_req_init(SMB2_IOCTL, tcon, server, in smb2_ioctl_req_init()
648 /* copy up to max of first 100 bytes of server name to NetName field */ in build_netname_ctxt()
680 struct TCP_Server_Info *server, unsigned int *total_len) in assemble_neg_contexts() argument
716 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in assemble_neg_contexts()
734 if (server->compress_algorithm) { in assemble_neg_contexts()
766 pr_warn_once("server sent bad preauth context\n"); in decode_preauth_context()
769 pr_warn_once("server sent invalid SaltLength\n"); in decode_preauth_context()
778 static void decode_compress_ctx(struct TCP_Server_Info *server, in decode_compress_ctx() argument
789 pr_warn_once("server sent bad compression cntxt\n"); in decode_compress_ctx()
800 server->compress_algorithm = ctxt->CompressionAlgorithms[0]; in decode_compress_ctx()
803 static int decode_encrypt_ctx(struct TCP_Server_Info *server, in decode_encrypt_ctx() argument
815 pr_warn_once("server sent bad crypto ctxt len\n"); in decode_encrypt_ctx()
826 cifs_dbg(VFS, "Server does not support requested encryption type (AES256 GCM)\n"); in decode_encrypt_ctx()
831 * e.g. if server only supported AES256_CCM (very unlikely) in decode_encrypt_ctx()
832 * or server supported no encryption types or had all disabled. in decode_encrypt_ctx()
836 * seal not requested by client, since server is allowed to in decode_encrypt_ctx()
839 server->cipher_type = 0; in decode_encrypt_ctx()
840 server->capabilities &= ~SMB2_GLOBAL_CAP_ENCRYPTION; in decode_encrypt_ctx()
841 pr_warn_once("Server does not support requested encryption types\n"); in decode_encrypt_ctx()
846 /* server returned a cipher we didn't ask for */ in decode_encrypt_ctx()
850 server->cipher_type = ctxt->Ciphers[0]; in decode_encrypt_ctx()
851 server->capabilities |= SMB2_GLOBAL_CAP_ENCRYPTION; in decode_encrypt_ctx()
855 static void decode_signing_ctx(struct TCP_Server_Info *server, in decode_signing_ctx() argument
866 pr_warn_once("server sent bad signing negcontext\n"); in decode_signing_ctx()
878 server->signing_negotiated = true; in decode_signing_ctx()
879 server->signing_algorithm = le16_to_cpu(pctxt->SigningAlgorithms[0]); in decode_signing_ctx()
881 server->signing_algorithm); in decode_signing_ctx()
886 struct TCP_Server_Info *server, in smb311_decode_neg_context() argument
926 rc = decode_encrypt_ctx(server, in smb311_decode_neg_context()
929 decode_compress_ctx(server, in smb311_decode_neg_context()
932 server->posix_ext_supported = true; in smb311_decode_neg_context()
934 decode_signing_ctx(server, in smb311_decode_neg_context()
1021 struct TCP_Server_Info *server) in SMB2_negotiate() argument
1037 if (!server) { in SMB2_negotiate()
1038 WARN(1, "%s: server is NULL!\n", __func__); in SMB2_negotiate()
1042 rc = smb2_plain_req_init(SMB2_NEGOTIATE, NULL, server, in SMB2_negotiate()
1049 memset(server->preauth_sha_hash, 0, SMB2_PREAUTH_HASH_SIZE); in SMB2_negotiate()
1052 if (strcmp(server->vals->version_string, in SMB2_negotiate()
1059 } else if (strcmp(server->vals->version_string, in SMB2_negotiate()
1069 req->Dialects[0] = cpu_to_le16(server->vals->protocol_id); in SMB2_negotiate()
1082 req->Capabilities = cpu_to_le32(server->vals->req_capabilities); in SMB2_negotiate()
1087 if (server->vals->protocol_id == SMB20_PROT_ID) in SMB2_negotiate()
1090 memcpy(req->ClientGUID, server->client_guid, in SMB2_negotiate()
1092 if ((server->vals->protocol_id == SMB311_PROT_ID) || in SMB2_negotiate()
1093 (strcmp(server->vals->version_string, in SMB2_negotiate()
1095 (strcmp(server->vals->version_string, in SMB2_negotiate()
1097 assemble_neg_contexts(req, server, &total_len); in SMB2_negotiate()
1106 rc = cifs_send_recv(xid, ses, server, in SMB2_negotiate()
1115 …cifs_server_dbg(VFS, "Dialect not supported by server. Consider specifying vers=1.0 or vers=2.0 o… in SMB2_negotiate()
1121 if (strcmp(server->vals->version_string, in SMB2_negotiate()
1133 server->ops = &smb311_operations; in SMB2_negotiate()
1134 server->vals = &smb311_values; in SMB2_negotiate()
1136 } else if (strcmp(server->vals->version_string, in SMB2_negotiate()
1144 server->ops = &smb21_operations; in SMB2_negotiate()
1145 server->vals = &smb21_values; in SMB2_negotiate()
1147 server->ops = &smb311_operations; in SMB2_negotiate()
1148 server->vals = &smb311_values; in SMB2_negotiate()
1151 server->vals->protocol_id) { in SMB2_negotiate()
1171 cifs_server_dbg(VFS, "Invalid dialect returned by server 0x%x\n", in SMB2_negotiate()
1177 server->dialect = le16_to_cpu(rsp->DialectRevision); in SMB2_negotiate()
1182 * server. in SMB2_negotiate()
1184 memcpy(server->preauth_sha_hash, ses->preauth_sha_hash, in SMB2_negotiate()
1188 server->negflavor = CIFS_NEGFLAVOR_EXTENDED; in SMB2_negotiate()
1190 server->maxBuf = min_t(unsigned int, le32_to_cpu(rsp->MaxTransactSize), in SMB2_negotiate()
1192 server->max_read = le32_to_cpu(rsp->MaxReadSize); in SMB2_negotiate()
1193 server->max_write = le32_to_cpu(rsp->MaxWriteSize); in SMB2_negotiate()
1194 server->sec_mode = le16_to_cpu(rsp->SecurityMode); in SMB2_negotiate()
1195 if ((server->sec_mode & SMB2_SEC_MODE_FLAGS_ALL) != server->sec_mode) in SMB2_negotiate()
1196 cifs_dbg(FYI, "Server returned unexpected security mode 0x%x\n", in SMB2_negotiate()
1197 server->sec_mode); in SMB2_negotiate()
1198 server->capabilities = le32_to_cpu(rsp->Capabilities); in SMB2_negotiate()
1200 server->capabilities |= SMB2_NT_FIND | SMB2_LARGE_FILES; in SMB2_negotiate()
1206 if (server->dialect == SMB30_PROT_ID && (server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in SMB2_negotiate()
1207 server->cipher_type = SMB2_ENCRYPTION_AES128_CCM; in SMB2_negotiate()
1216 * We just found a server which sets blob length to zero expecting raw. in SMB2_negotiate()
1220 server->sec_ntlmssp = true; in SMB2_negotiate()
1223 rc = cifs_enable_signing(server, ses->sign); in SMB2_negotiate()
1227 rc = decode_negTokenInit(security_blob, blob_length, server); in SMB2_negotiate()
1236 rc = smb311_decode_neg_context(rsp, server, in SMB2_negotiate()
1253 struct TCP_Server_Info *server = tcon->ses->server; in smb3_validate_negotiate() local
1258 if (server->dialect == SMB311_PROT_ID) in smb3_validate_negotiate()
1277 cifs_tcon_dbg(VFS, "Unexpected null user (anonymous) auth flag sent by server\n"); in smb3_validate_negotiate()
1284 cpu_to_le32(server->vals->req_capabilities); in smb3_validate_negotiate()
1288 memcpy(pneg_inbuf->Guid, server->client_guid, in smb3_validate_negotiate()
1301 if (strcmp(server->vals->version_string, in smb3_validate_negotiate()
1310 } else if (strcmp(server->vals->version_string, in smb3_validate_negotiate()
1322 cpu_to_le16(server->vals->protocol_id); in smb3_validate_negotiate()
1335 * Old Windows versions or Netapp SMB server can return in smb3_validate_negotiate()
1338 cifs_tcon_dbg(VFS, "Server does not support validate negotiate\n"); in smb3_validate_negotiate()
1359 if (pneg_rsp->Dialect != cpu_to_le16(server->dialect)) in smb3_validate_negotiate()
1362 if (pneg_rsp->SecurityMode != cpu_to_le16(server->sec_mode)) in smb3_validate_negotiate()
1365 /* do not validate server guid because not saved at negprot time yet */ in smb3_validate_negotiate()
1368 SMB2_LARGE_FILES) != server->capabilities) in smb3_validate_negotiate()
1386 smb2_select_sectype(struct TCP_Server_Info *server, enum securityEnum requested) in smb2_select_sectype() argument
1395 if (server->sec_ntlmssp && in smb2_select_sectype()
1398 if ((server->sec_kerberos || server->sec_mskerberos) && in smb2_select_sectype()
1410 struct TCP_Server_Info *server; member
1432 struct TCP_Server_Info *server = sess_data->server; in SMB2_sess_alloc_buffer() local
1437 rc = smb2_plain_req_init(SMB2_SESSION_SETUP, NULL, server, in SMB2_sess_alloc_buffer()
1467 if (server->credits >= server->max_credits) in SMB2_sess_alloc_buffer()
1471 min_t(int, server->max_credits - in SMB2_sess_alloc_buffer()
1472 server->credits, 130)); in SMB2_sess_alloc_buffer()
1475 if (server->sign) in SMB2_sess_alloc_buffer()
1534 sess_data->server, in SMB2_sess_sendreceive()
1549 struct TCP_Server_Info *server = sess_data->server; in SMB2_sess_establish_session() local
1551 cifs_server_lock(server); in SMB2_sess_establish_session()
1552 if (server->ops->generate_signingkey) { in SMB2_sess_establish_session()
1553 rc = server->ops->generate_signingkey(ses, server); in SMB2_sess_establish_session()
1557 cifs_server_unlock(server); in SMB2_sess_establish_session()
1561 if (!server->session_estab) { in SMB2_sess_establish_session()
1562 server->sequence_number = 0x2; in SMB2_sess_establish_session()
1563 server->session_estab = true; in SMB2_sess_establish_session()
1565 cifs_server_unlock(server); in SMB2_sess_establish_session()
1577 struct TCP_Server_Info *server = sess_data->server; in SMB2_auth_kerberos() local
1587 spnego_key = cifs_get_spnego_key(ses, server); in SMB2_auth_kerberos()
1672 struct TCP_Server_Info *server = sess_data->server; in SMB2_sess_auth_rawntlmssp_negotiate() local
1695 &blob_length, ses, server, in SMB2_sess_auth_rawntlmssp_negotiate()
1764 struct TCP_Server_Info *server = sess_data->server; in SMB2_sess_auth_rawntlmssp_authenticate() local
1780 ses, server, in SMB2_sess_auth_rawntlmssp_authenticate()
1814 if (ses->server->dialect < SMB30_PROT_ID) { in SMB2_sess_auth_rawntlmssp_authenticate()
1842 struct TCP_Server_Info *server = sess_data->server; in SMB2_select_sec() local
1844 type = smb2_select_sectype(server, ses->sectype); in SMB2_select_sec()
1868 struct TCP_Server_Info *server, in SMB2_sess_setup() argument
1876 if (!server) { in SMB2_sess_setup()
1877 WARN(1, "%s: server is NULL!\n", __func__); in SMB2_sess_setup()
1887 sess_data->server = server; in SMB2_sess_setup()
1897 * Initialize the session hash with the server one. in SMB2_sess_setup()
1899 memcpy(ses->preauth_sha_hash, server->preauth_sha_hash, in SMB2_sess_setup()
1919 struct TCP_Server_Info *server; in SMB2_logoff() local
1928 if (ses && (ses->server)) in SMB2_logoff()
1929 server = ses->server; in SMB2_logoff()
1941 rc = smb2_plain_req_init(SMB2_LOGOFF, NULL, ses->server, in SMB2_logoff()
1951 else if (server->sign) in SMB2_logoff()
1963 rc = cifs_send_recv(xid, ses, ses->server, in SMB2_logoff()
1980 #define MAX_SHARENAME_LENGTH (255 /* server */ + 80 /* share */ + 1 /* NULL */)
2005 struct TCP_Server_Info *server = cifs_pick_channel(ses); in SMB2_tcon() local
2009 if (!server || !tree) in SMB2_tcon()
2026 rc = smb2_plain_req_init(SMB2_TREE_CONNECT, tcon, server, in SMB2_tcon()
2051 if ((server->dialect == SMB311_PROT_ID) && in SMB2_tcon()
2063 if (server->credits >= server->max_credits) in SMB2_tcon()
2067 min_t(int, server->max_credits - in SMB2_tcon()
2068 server->credits, 64)); in SMB2_tcon()
2070 rc = cifs_send_recv(xid, ses, server, in SMB2_tcon()
2110 !(server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in SMB2_tcon()
2114 if (server->ops->validate_negotiate) in SMB2_tcon()
2115 rc = server->ops->validate_negotiate(xid, tcon); in SMB2_tcon()
2118 server->nosharesock = true; in SMB2_tcon()
2138 struct TCP_Server_Info *server = cifs_pick_channel(ses); in SMB2_tdis() local
2147 if (!ses || !(ses->server)) in SMB2_tdis()
2161 rc = smb2_plain_req_init(SMB2_TREE_DISCONNECT, tcon, server, in SMB2_tdis()
2179 rc = cifs_send_recv(xid, ses, server, in SMB2_tdis()
2285 int smb2_parse_contexts(struct TCP_Server_Info *server, in smb2_parse_contexts() argument
2331 *oplock = server->ops->parse_lease_buf(cc, epoch, in smb2_parse_contexts()
2365 add_lease_context(struct TCP_Server_Info *server, in add_lease_context() argument
2372 iov[num].iov_base = server->ops->create_lease_buf(lease_key, *oplock); in add_lease_context()
2375 iov[num].iov_len = server->vals->create_lease_size; in add_lease_context()
2399 * NB: Handle timeout defaults to 0, which allows server to choose in create_durable_v2_buf()
2786 struct TCP_Server_Info *server; in smb311_posix_mkdir() local
2793 server = cifs_pick_channel(ses); in smb311_posix_mkdir()
2802 if (!ses || !server) { in smb311_posix_mkdir()
2808 rc = smb2_plain_req_init(SMB2_CREATE, tcon, server, in smb311_posix_mkdir()
2899 smb2_set_replay(server, &rqst); in smb311_posix_mkdir()
2902 rc = cifs_send_recv(xid, ses, server, in smb311_posix_mkdir()
2947 SMB2_open_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_open_init() argument
2961 rc = smb2_plain_req_init(SMB2_CREATE, tcon, server, in SMB2_open_init()
3022 if ((!server->oplocks) || (tcon->no_lease)) in SMB2_open_init()
3025 if (!(server->capabilities & SMB2_GLOBAL_CAP_LEASING) || in SMB2_open_init()
3028 else if (!(server->capabilities & SMB2_GLOBAL_CAP_DIRECTORY_LEASING) && in SMB2_open_init()
3032 rc = add_lease_context(server, req, iov, &n_iov, in SMB2_open_init()
3138 struct TCP_Server_Info *server; in SMB2_open() local
3149 server = cifs_pick_channel(ses); in SMB2_open()
3153 if (!ses || !server) in SMB2_open()
3164 rc = SMB2_open_init(tcon, server, in SMB2_open()
3173 smb2_set_replay(server, &rqst); in SMB2_open()
3175 rc = cifs_send_recv(xid, ses, server, in SMB2_open()
3191 pr_warn_once("server share %s deleted\n", in SMB2_open()
3223 rc = smb2_parse_contexts(server, &rsp_iov, &oparms->fid->epoch, in SMB2_open()
3237 SMB2_ioctl_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_ioctl_init() argument
3249 rc = smb2_ioctl_req_init(opcode, tcon, server, in SMB2_ioctl_init()
3300 * ioctls it may be useful to allow server to send more. No point in SMB2_ioctl_init()
3301 * limiting what the server can send as long as fits in one credit in SMB2_ioctl_init()
3351 struct TCP_Server_Info *server; in SMB2_ioctl() local
3369 server = cifs_pick_channel(ses); in SMB2_ioctl()
3371 if (!server) in SMB2_ioctl()
3391 rc = SMB2_ioctl_init(tcon, server, in SMB2_ioctl()
3398 smb2_set_replay(server, &rqst); in SMB2_ioctl()
3400 rc = cifs_send_recv(xid, ses, server, in SMB2_ioctl()
3443 goto ioctl_exit; /* server returned no data */ in SMB2_ioctl()
3504 SMB2_close_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_close_init() argument
3513 rc = smb2_plain_req_init(SMB2_CLOSE, tcon, server, in SMB2_close_init()
3545 struct TCP_Server_Info *server; in __SMB2_close() local
3558 server = cifs_pick_channel(ses); in __SMB2_close()
3562 if (!ses || !server) in __SMB2_close()
3573 /* check if need to ask server to return timestamps in close response */ in __SMB2_close()
3578 rc = SMB2_close_init(tcon, server, in __SMB2_close()
3585 smb2_set_replay(server, &rqst); in __SMB2_close()
3587 rc = cifs_send_recv(xid, ses, server, in __SMB2_close()
3659 cifs_dbg(VFS, "Invalid server response, bad offset to data\n"); in smb2_validate_iov()
3691 SMB2_query_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_query_info_init() argument
3707 rc = smb2_plain_req_init(SMB2_QUERY_INFO, tcon, server, in SMB2_query_info_init()
3752 struct TCP_Server_Info *server; in query_info() local
3766 server = cifs_pick_channel(ses); in query_info()
3768 if (!server) in query_info()
3779 rc = SMB2_query_info_init(tcon, server, in query_info()
3790 smb2_set_replay(server, &rqst); in query_info()
3792 rc = cifs_send_recv(xid, ses, server, in query_info()
3901 struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_notify_init() argument
3910 rc = smb2_plain_req_init(SMB2_CHANGE_NOTIFY, tcon, server, in SMB2_notify_init()
3939 struct TCP_Server_Info *server; in SMB2_change_notify() local
3952 server = cifs_pick_channel(ses); in SMB2_change_notify()
3955 if (!ses || !server) in SMB2_change_notify()
3969 rc = SMB2_notify_init(xid, &rqst, tcon, server, in SMB2_change_notify()
3979 smb2_set_replay(server, &rqst); in SMB2_change_notify()
3981 rc = cifs_send_recv(xid, ses, server, in SMB2_change_notify()
4027 * rather in the fact that the server sent one and that server->lstrp
4035 struct TCP_Server_Info *server = mid->callback_data; in smb2_echo_callback() local
4042 credits.instance = server->reconnect_instance; in smb2_echo_callback()
4046 add_credits(server, &credits, CIFS_ECHO_OP); in smb2_echo_callback()
4051 struct TCP_Server_Info *server = container_of(work, in smb2_reconnect_server() local
4064 if (!server->srv_count) { in smb2_reconnect_server()
4068 server->srv_count++; in smb2_reconnect_server()
4071 /* If server is a channel, select the primary channel */ in smb2_reconnect_server()
4072 pserver = SERVER_IS_CHAN(server) ? server->primary_server : server; in smb2_reconnect_server()
4077 /* if the server is marked for termination, drop the ref count here */ in smb2_reconnect_server()
4078 if (server->terminate) { in smb2_reconnect_server()
4079 cifs_put_tcp_session(server, true); in smb2_reconnect_server()
4121 if (!tcon_selected && cifs_chan_needs_reconnect(ses, server)) { in smb2_reconnect_server()
4131 rc = smb2_reconnect(SMB2_INTERNAL_CMD, tcon, server, true); in smb2_reconnect_server()
4164 rc = smb2_reconnect(SMB2_INTERNAL_CMD, tcon, server, true); in smb2_reconnect_server()
4175 queue_delayed_work(cifsiod_wq, &server->reconnect, 2 * HZ); in smb2_reconnect_server()
4179 cifs_put_tcp_session(server, true); in smb2_reconnect_server()
4183 SMB2_echo(struct TCP_Server_Info *server) in SMB2_echo() argument
4192 cifs_dbg(FYI, "In echo request for conn_id %lld\n", server->conn_id); in SMB2_echo()
4194 spin_lock(&server->srv_lock); in SMB2_echo()
4195 if (server->ops->need_neg && in SMB2_echo()
4196 server->ops->need_neg(server)) { in SMB2_echo()
4197 spin_unlock(&server->srv_lock); in SMB2_echo()
4199 mod_delayed_work(cifsiod_wq, &server->reconnect, 0); in SMB2_echo()
4202 spin_unlock(&server->srv_lock); in SMB2_echo()
4204 rc = smb2_plain_req_init(SMB2_ECHO, NULL, server, in SMB2_echo()
4214 rc = cifs_call_async(server, &rqst, NULL, smb2_echo_callback, NULL, in SMB2_echo()
4215 server, CIFS_ECHO_OP, NULL); in SMB2_echo()
4232 struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_flush_init() argument
4240 rc = smb2_plain_req_init(SMB2_FLUSH, tcon, server, in SMB2_flush_init()
4262 struct TCP_Server_Info *server; in SMB2_flush() local
4271 server = cifs_pick_channel(ses); in SMB2_flush()
4274 if (!ses || !(ses->server)) in SMB2_flush()
4285 rc = SMB2_flush_init(xid, &rqst, tcon, server, in SMB2_flush()
4293 smb2_set_replay(server, &rqst); in SMB2_flush()
4295 rc = cifs_send_recv(xid, ses, server, in SMB2_flush()
4320 struct TCP_Server_Info *server = io_parms->server; in smb3_use_rdma_offload() local
4324 if (!server || !tcon) in smb3_use_rdma_offload()
4328 if (!server->rdma || !server->smbd_conn) in smb3_use_rdma_offload()
4332 if (server->sign) in smb3_use_rdma_offload()
4340 if (io_parms->length < server->smbd_conn->rdma_readwrite_threshold) in smb3_use_rdma_offload()
4359 struct TCP_Server_Info *server = io_parms->server; in smb2_new_read_req() local
4361 rc = smb2_plain_req_init(SMB2_READ, io_parms->tcon, server, in smb2_new_read_req()
4366 if (server == NULL) in smb2_new_read_req()
4392 bool need_invalidate = server->dialect == SMB30_PROT_ID; in smb2_new_read_req()
4394 rdata->mr = smbd_register_mr(server->smbd_conn, &rdata->iter, in smb2_new_read_req()
4447 struct TCP_Server_Info *server = rdata->server; in smb2_readv_callback() local
4458 WARN_ONCE(rdata->server != mid->server, in smb2_readv_callback()
4459 "rdata server %p != mid server %p", in smb2_readv_callback()
4460 rdata->server, mid->server); in smb2_readv_callback()
4469 credits.instance = server->reconnect_instance; in smb2_readv_callback()
4471 if (server->sign && !mid->decrypted) { in smb2_readv_callback()
4476 rc = smb2_verify_signature(&rqst, server); in smb2_readv_callback()
4488 if (server->sign && rdata->got_bytes) in smb2_readv_callback()
4497 credits.instance = server->reconnect_instance; in smb2_readv_callback()
4527 add_credits(server, &credits, 0); in smb2_readv_callback()
4540 struct TCP_Server_Info *server; in smb2_async_readv() local
4548 if (!rdata->server) in smb2_async_readv()
4549 rdata->server = cifs_pick_channel(tcon->ses); in smb2_async_readv()
4552 io_parms.server = server = rdata->server; in smb2_async_readv()
4576 if (server->credits >= server->max_credits) in smb2_async_readv()
4580 min_t(int, server->max_credits - in smb2_async_readv()
4581 server->credits, credit_request)); in smb2_async_readv()
4583 rc = adjust_credits(server, &rdata->credits, rdata->bytes); in smb2_async_readv()
4591 rc = cifs_call_async(server, &rqst, in smb2_async_readv()
4623 if (!io_parms->server) in SMB2_read()
4624 io_parms->server = cifs_pick_channel(io_parms->tcon->ses); in SMB2_read()
4641 rc = cifs_send_recv(xid, ses, io_parms->server, in SMB2_read()
4699 struct TCP_Server_Info *server = wdata->server; in smb2_writev_callback() local
4704 WARN_ONCE(wdata->server != mid->server, in smb2_writev_callback()
4705 "wdata server %p != mid server %p", in smb2_writev_callback()
4706 wdata->server, mid->server); in smb2_writev_callback()
4711 credits.instance = server->reconnect_instance; in smb2_writev_callback()
4712 wdata->result = smb2_check_receive(mid, server, 0); in smb2_writev_callback()
4719 * by the server is greater than bytes requested by the in smb2_writev_callback()
4737 credits.instance = server->reconnect_instance; in smb2_writev_callback()
4773 add_credits(server, &credits, 0); in smb2_writev_callback()
4785 struct TCP_Server_Info *server = wdata->server; in smb2_async_writev() local
4793 if (!wdata->server || wdata->replay) in smb2_async_writev()
4794 server = wdata->server = cifs_pick_channel(tcon->ses); in smb2_async_writev()
4802 .server = server, in smb2_async_writev()
4811 rc = smb2_plain_req_init(SMB2_WRITE, tcon, server, in smb2_async_writev()
4841 * If we want to do a server RDMA read, fill in and append in smb2_async_writev()
4847 bool need_invalidate = server->dialect == SMB30_PROT_ID; in smb2_async_writev()
4849 wdata->mr = smbd_register_mr(server->smbd_conn, &wdata->iter, in smb2_async_writev()
4879 smb2_set_replay(server, &rqst); in smb2_async_writev()
4899 if (server->credits >= server->max_credits) in smb2_async_writev()
4903 min_t(int, server->max_credits - in smb2_async_writev()
4904 server->credits, credit_request)); in smb2_async_writev()
4906 rc = adjust_credits(server, &wdata->credits, io_parms->length); in smb2_async_writev()
4914 rc = cifs_call_async(server, &rqst, NULL, smb2_writev_callback, NULL, in smb2_async_writev()
4952 struct TCP_Server_Info *server; in SMB2_write() local
4959 if (!io_parms->server) in SMB2_write()
4960 io_parms->server = cifs_pick_channel(io_parms->tcon->ses); in SMB2_write()
4961 server = io_parms->server; in SMB2_write()
4962 if (server == NULL) in SMB2_write()
4968 rc = smb2_plain_req_init(SMB2_WRITE, io_parms->tcon, server, in SMB2_write()
5002 smb2_set_replay(server, &rqst); in SMB2_write()
5004 rc = cifs_send_recv(xid, io_parms->tcon->ses, server, in SMB2_write()
5185 struct TCP_Server_Info *server, in SMB2_query_directory_init() argument
5200 rc = smb2_plain_req_init(SMB2_QUERY_DIRECTORY, tcon, server, in SMB2_query_directory_init()
5239 output_size = min_t(unsigned int, output_size, server->maxBuf); in SMB2_query_directory_init()
5350 struct TCP_Server_Info *server; in SMB2_query_directory() local
5357 server = cifs_pick_channel(ses); in SMB2_query_directory()
5359 if (!ses || !(ses->server)) in SMB2_query_directory()
5370 rc = SMB2_query_directory_init(xid, tcon, server, in SMB2_query_directory()
5378 smb2_set_replay(server, &rqst); in SMB2_query_directory()
5380 rc = cifs_send_recv(xid, ses, server, in SMB2_query_directory()
5423 SMB2_set_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_set_info_init() argument
5434 rc = smb2_plain_req_init(SMB2_SET_INFO, tcon, server, in SMB2_set_info_init()
5485 struct TCP_Server_Info *server; in send_set_info() local
5492 server = cifs_pick_channel(ses); in send_set_info()
5494 if (!ses || !server) in send_set_info()
5511 rc = SMB2_set_info_init(tcon, server, in send_set_info()
5521 smb2_set_replay(server, &rqst); in send_set_info()
5523 rc = cifs_send_recv(xid, ses, server, in send_set_info()
5594 struct TCP_Server_Info *server; in SMB2_oplock_break() local
5605 server = cifs_pick_channel(ses); in SMB2_oplock_break()
5608 rc = smb2_plain_req_init(SMB2_OPLOCK_BREAK, tcon, server, in SMB2_oplock_break()
5631 smb2_set_replay(server, &rqst); in SMB2_oplock_break()
5633 rc = cifs_send_recv(xid, ses, server, in SMB2_oplock_break()
5681 struct TCP_Server_Info *server, in build_qfs_info_req() argument
5691 if ((tcon->ses == NULL) || server == NULL) in build_qfs_info_req()
5694 rc = smb2_plain_req_init(SMB2_QUERY_INFO, tcon, server, in build_qfs_info_req()
5730 struct TCP_Server_Info *server; in SMB311_posix_qfs_info() local
5738 server = cifs_pick_channel(ses); in SMB311_posix_qfs_info()
5740 rc = build_qfs_info_req(&iov, tcon, server, in SMB311_posix_qfs_info()
5755 smb2_set_replay(server, &rqst); in SMB311_posix_qfs_info()
5757 rc = cifs_send_recv(xid, ses, server, in SMB311_posix_qfs_info()
5795 struct TCP_Server_Info *server; in SMB2_QFS_info() local
5803 server = cifs_pick_channel(ses); in SMB2_QFS_info()
5805 rc = build_qfs_info_req(&iov, tcon, server, in SMB2_QFS_info()
5820 smb2_set_replay(server, &rqst); in SMB2_QFS_info()
5822 rc = cifs_send_recv(xid, ses, server, in SMB2_QFS_info()
5860 struct TCP_Server_Info *server; in SMB2_QFS_attr() local
5868 server = cifs_pick_channel(ses); in SMB2_QFS_attr()
5887 rc = build_qfs_info_req(&iov, tcon, server, in SMB2_QFS_attr()
5901 smb2_set_replay(server, &rqst); in SMB2_QFS_attr()
5903 rc = cifs_send_recv(xid, ses, server, in SMB2_QFS_attr()
5962 struct TCP_Server_Info *server; in smb2_lockv() local
5968 server = cifs_pick_channel(tcon->ses); in smb2_lockv()
5972 rc = smb2_plain_req_init(SMB2_LOCK, tcon, server, in smb2_lockv()
6000 smb2_set_replay(server, &rqst); in smb2_lockv()
6002 rc = cifs_send_recv(xid, tcon->ses, server, in smb2_lockv()
6052 struct TCP_Server_Info *server = cifs_pick_channel(tcon->ses); in SMB2_lease_break() local
6055 rc = smb2_plain_req_init(SMB2_OPLOCK_BREAK, tcon, server, in SMB2_lease_break()
6079 rc = cifs_send_recv(xid, ses, server, in SMB2_lease_break()