Lines Matching refs:server

27 change_conf(struct TCP_Server_Info *server)  in change_conf()  argument
29 server->credits += server->echo_credits + server->oplock_credits; in change_conf()
30 server->oplock_credits = server->echo_credits = 0; in change_conf()
31 switch (server->credits) { in change_conf()
35 server->echoes = false; in change_conf()
36 server->oplocks = false; in change_conf()
39 server->echoes = true; in change_conf()
40 server->oplocks = false; in change_conf()
41 server->echo_credits = 1; in change_conf()
44 server->echoes = true; in change_conf()
46 server->oplocks = true; in change_conf()
47 server->oplock_credits = 1; in change_conf()
49 server->oplocks = false; in change_conf()
51 server->echo_credits = 1; in change_conf()
53 server->credits -= server->echo_credits + server->oplock_credits; in change_conf()
54 return server->credits + server->echo_credits + server->oplock_credits; in change_conf()
58 smb2_add_credits(struct TCP_Server_Info *server, in smb2_add_credits() argument
66 spin_lock(&server->req_lock); in smb2_add_credits()
67 val = server->ops->get_credits_field(server, optype); in smb2_add_credits()
71 trace_smb3_reconnect_with_invalid_credits(server->CurrentMid, in smb2_add_credits()
72 server->hostname, *val); in smb2_add_credits()
73 if ((instance == 0) || (instance == server->reconnect_instance)) in smb2_add_credits()
82 server->in_flight--; in smb2_add_credits()
83 if (server->in_flight == 0 && (optype & CIFS_OP_MASK) != CIFS_NEG_OP) in smb2_add_credits()
84 rc = change_conf(server); in smb2_add_credits()
89 else if (server->in_flight > 0 && server->oplock_credits == 0 && in smb2_add_credits()
90 server->oplocks) { in smb2_add_credits()
91 if (server->credits > 1) { in smb2_add_credits()
92 server->credits--; in smb2_add_credits()
93 server->oplock_credits++; in smb2_add_credits()
96 spin_unlock(&server->req_lock); in smb2_add_credits()
97 wake_up(&server->request_q); in smb2_add_credits()
103 if (server->tcpStatus == CifsNeedReconnect in smb2_add_credits()
104 || server->tcpStatus == CifsExiting) in smb2_add_credits()
126 smb2_set_credits(struct TCP_Server_Info *server, const int val) in smb2_set_credits() argument
128 spin_lock(&server->req_lock); in smb2_set_credits()
129 server->credits = val; in smb2_set_credits()
131 server->reconnect_instance++; in smb2_set_credits()
132 spin_unlock(&server->req_lock); in smb2_set_credits()
139 smb2_get_credits_field(struct TCP_Server_Info *server, const int optype) in smb2_get_credits_field() argument
143 return &server->echo_credits; in smb2_get_credits_field()
145 return &server->oplock_credits; in smb2_get_credits_field()
147 return &server->credits; in smb2_get_credits_field()
164 smb2_wait_mtu_credits(struct TCP_Server_Info *server, unsigned int size, in smb2_wait_mtu_credits() argument
170 spin_lock(&server->req_lock); in smb2_wait_mtu_credits()
172 if (server->credits <= 0) { in smb2_wait_mtu_credits()
173 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
174 cifs_num_waiters_inc(server); in smb2_wait_mtu_credits()
175 rc = wait_event_killable(server->request_q, in smb2_wait_mtu_credits()
176 has_credits(server, &server->credits, 1)); in smb2_wait_mtu_credits()
177 cifs_num_waiters_dec(server); in smb2_wait_mtu_credits()
180 spin_lock(&server->req_lock); in smb2_wait_mtu_credits()
182 if (server->tcpStatus == CifsExiting) { in smb2_wait_mtu_credits()
183 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
187 scredits = server->credits; in smb2_wait_mtu_credits()
203 credits->instance = server->reconnect_instance; in smb2_wait_mtu_credits()
204 server->credits -= credits->value; in smb2_wait_mtu_credits()
205 server->in_flight++; in smb2_wait_mtu_credits()
206 if (server->in_flight > server->max_in_flight) in smb2_wait_mtu_credits()
207 server->max_in_flight = server->in_flight; in smb2_wait_mtu_credits()
211 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
216 smb2_adjust_credits(struct TCP_Server_Info *server, in smb2_adjust_credits() argument
231 spin_lock(&server->req_lock); in smb2_adjust_credits()
233 if (server->reconnect_instance != credits->instance) { in smb2_adjust_credits()
234 spin_unlock(&server->req_lock); in smb2_adjust_credits()
240 server->credits += credits->value - new_val; in smb2_adjust_credits()
241 spin_unlock(&server->req_lock); in smb2_adjust_credits()
242 wake_up(&server->request_q); in smb2_adjust_credits()
248 smb2_get_next_mid(struct TCP_Server_Info *server) in smb2_get_next_mid() argument
253 mid = server->CurrentMid++; in smb2_get_next_mid()
259 smb2_revert_current_mid(struct TCP_Server_Info *server, const unsigned int val) in smb2_revert_current_mid() argument
262 if (server->CurrentMid >= val) in smb2_revert_current_mid()
263 server->CurrentMid -= val; in smb2_revert_current_mid()
268 smb2_find_mid(struct TCP_Server_Info *server, char *buf) in smb2_find_mid() argument
280 list_for_each_entry(mid, &server->pending_mid_q, qhead) { in smb2_find_mid()
294 smb2_dump_detail(void *buf, struct TCP_Server_Info *server) in smb2_dump_detail() argument
303 server->ops->calc_smb_size(buf, server)); in smb2_dump_detail()
308 smb2_need_neg(struct TCP_Server_Info *server) in smb2_need_neg() argument
310 return server->max_read == 0; in smb2_need_neg()
318 ses->server->CurrentMid = 0; in smb2_negotiate()
329 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_wsize() local
334 wsize = min_t(unsigned int, wsize, server->max_write); in smb2_negotiate_wsize()
336 if (server->rdma) { in smb2_negotiate_wsize()
337 if (server->sign) in smb2_negotiate_wsize()
339 wsize, server->smbd_conn->max_fragmented_send_size); in smb2_negotiate_wsize()
342 wsize, server->smbd_conn->max_readwrite_size); in smb2_negotiate_wsize()
345 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_negotiate_wsize()
354 struct TCP_Server_Info *server = tcon->ses->server; in smb3_negotiate_wsize() local
359 wsize = min_t(unsigned int, wsize, server->max_write); in smb3_negotiate_wsize()
361 if (server->rdma) { in smb3_negotiate_wsize()
362 if (server->sign) in smb3_negotiate_wsize()
364 wsize, server->smbd_conn->max_fragmented_send_size); in smb3_negotiate_wsize()
367 wsize, server->smbd_conn->max_readwrite_size); in smb3_negotiate_wsize()
370 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb3_negotiate_wsize()
379 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_rsize() local
384 rsize = min_t(unsigned int, rsize, server->max_read); in smb2_negotiate_rsize()
386 if (server->rdma) { in smb2_negotiate_rsize()
387 if (server->sign) in smb2_negotiate_rsize()
389 rsize, server->smbd_conn->max_fragmented_recv_size); in smb2_negotiate_rsize()
392 rsize, server->smbd_conn->max_readwrite_size); in smb2_negotiate_rsize()
396 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_negotiate_rsize()
405 struct TCP_Server_Info *server = tcon->ses->server; in smb3_negotiate_rsize() local
410 rsize = min_t(unsigned int, rsize, server->max_read); in smb3_negotiate_rsize()
412 if (server->rdma) { in smb3_negotiate_rsize()
413 if (server->sign) in smb3_negotiate_rsize()
415 rsize, server->smbd_conn->max_fragmented_recv_size); in smb3_negotiate_rsize()
418 rsize, server->smbd_conn->max_readwrite_size); in smb3_negotiate_rsize()
422 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb3_negotiate_rsize()
639 struct TCP_Server_Info *server = ses->server; in open_shroot() local
771 smb2_parse_contexts(server, o_rsp, in open_shroot()
1112 if (ses->server->ops->query_all_EAs) { in smb2_set_ea()
1114 rc = ses->server->ops->query_all_EAs(xid, tcon, path, in smb2_set_ea()
1197 smb2_can_echo(struct TCP_Server_Info *server) in smb2_can_echo() argument
1199 return server->echoes; in smb2_can_echo()
1310 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in smb2_set_fid() local
1317 server->ops->set_oplock_level(cinode, oplock, fid->epoch, in smb2_set_fid()
1399 if (!ses || !(ses->server)) in smb2_ioctl_query_info()
2057 smb2_is_status_pending(char *buf, struct TCP_Server_Info *server) in smb2_is_status_pending() argument
2065 spin_lock(&server->req_lock); in smb2_is_status_pending()
2066 server->credits += le16_to_cpu(shdr->CreditRequest); in smb2_is_status_pending()
2067 spin_unlock(&server->req_lock); in smb2_is_status_pending()
2068 wake_up(&server->request_q); in smb2_is_status_pending()
2095 if (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_LEASING) in smb2_oplock_response()
2124 struct TCP_Server_Info *server = ses->server; in smb2_set_next_command() local
2125 unsigned long len = smb_rqst_len(server, rqst); in smb2_set_next_command()
3283 smb2_downgrade_oplock(struct TCP_Server_Info *server, in smb2_downgrade_oplock() argument
3287 server->ops->set_oplock_level(cinode, SMB2_OPLOCK_LEVEL_II, in smb2_downgrade_oplock()
3290 server->ops->set_oplock_level(cinode, 0, 0, NULL); in smb2_downgrade_oplock()
3294 smb21_downgrade_oplock(struct TCP_Server_Info *server, in smb21_downgrade_oplock() argument
3297 server->ops->set_oplock_level(cinode, in smb21_downgrade_oplock()
3595 smb2_get_enc_key(struct TCP_Server_Info *server, __u64 ses_id, int enc, u8 *key) in smb2_get_enc_key() argument
3601 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in smb2_get_enc_key()
3622 crypt_message(struct TCP_Server_Info *server, int num_rqst, in crypt_message() argument
3639 rc = smb2_get_enc_key(server, tr_hdr->SessionId, enc, key); in crypt_message()
3646 rc = smb3_crypto_aead_allocate(server); in crypt_message()
3652 tfm = enc ? server->secmech.ccmaesencrypt : in crypt_message()
3653 server->secmech.ccmaesdecrypt; in crypt_message()
3692 if (server->cipher_type == SMB2_ENCRYPTION_AES128_GCM) in crypt_message()
3747 smb3_init_transform_rq(struct TCP_Server_Info *server, int num_rqst, in smb3_init_transform_rq() argument
3772 orig_len += smb_rqst_len(server, &old_rq[i - 1]); in smb3_init_transform_rq()
3797 fill_transform_hdr(tr_hdr, orig_len, old_rq, server->cipher_type); in smb3_init_transform_rq()
3799 rc = crypt_message(server, num_rqst, new_rq, 1); in smb3_init_transform_rq()
3820 decrypt_raw_data(struct TCP_Server_Info *server, char *buf, in decrypt_raw_data() argument
3840 rc = crypt_message(server, 1, &rqst, 0); in decrypt_raw_data()
3848 server->total_read = buf_data_size + page_data_size; in decrypt_raw_data()
3854 read_data_into_pages(struct TCP_Server_Info *server, struct page **pages, in read_data_into_pages() argument
3873 length = cifs_read_page_from_socket(server, page, 0, n); in read_data_into_pages()
3876 server->total_read += length; in read_data_into_pages()
3911 handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid, in handle_read_data() argument
3933 if (server->ops->is_session_expired && in handle_read_data()
3934 server->ops->is_session_expired(buf)) { in handle_read_data()
3935 cifs_reconnect(server); in handle_read_data()
3936 wake_up(&server->response_q); in handle_read_data()
3940 if (server->ops->is_status_pending && in handle_read_data()
3941 server->ops->is_status_pending(buf, server)) in handle_read_data()
3949 min_t(unsigned int, buf_len, server->vals->read_rsp_size); in handle_read_data()
3955 rdata->result = server->ops->map_error(buf, true); in handle_read_data()
3964 data_offset = server->ops->read_data_offset(buf); in handle_read_data()
3968 data_len = server->ops->read_data_length(buf, use_rdma_mr); in handle_read_data()
3970 if (data_offset < server->vals->read_rsp_size) { in handle_read_data()
3978 data_offset = server->vals->read_rsp_size; in handle_read_data()
3988 pad_len = data_offset - server->vals->read_rsp_size; in handle_read_data()
4033 length = rdata->copy_into_pages(server, rdata, &iter); in handle_read_data()
4046 struct TCP_Server_Info *server; member
4061 rc = decrypt_raw_data(dw->server, dw->buf, dw->server->vals->read_rsp_size, in smb2_decrypt_offload()
4068 dw->server->lstrp = jiffies; in smb2_decrypt_offload()
4069 mid = smb2_find_mid(dw->server, dw->buf); in smb2_decrypt_offload()
4074 rc = handle_read_data(dw->server, mid, dw->buf, in smb2_decrypt_offload()
4075 dw->server->vals->read_rsp_size, in smb2_decrypt_offload()
4092 receive_encrypted_read(struct TCP_Server_Info *server, struct mid_q_entry **mid, in receive_encrypted_read() argument
4095 char *buf = server->smallbuf; in receive_encrypted_read()
4100 unsigned int buflen = server->pdu_size; in receive_encrypted_read()
4106 len = min_t(unsigned int, buflen, server->vals->read_rsp_size + in receive_encrypted_read()
4107 sizeof(struct smb2_transform_hdr)) - HEADER_SIZE(server) + 1; in receive_encrypted_read()
4109 rc = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1, len); in receive_encrypted_read()
4112 server->total_read += rc; in receive_encrypted_read()
4115 server->vals->read_rsp_size; in receive_encrypted_read()
4133 rc = read_data_into_pages(server, pages, npages, len); in receive_encrypted_read()
4137 rc = cifs_discard_remaining_data(server); in receive_encrypted_read()
4146 if ((server->min_offload) && (server->in_flight > 1) && in receive_encrypted_read()
4147 (server->pdu_size >= server->min_offload)) { in receive_encrypted_read()
4152 dw->buf = server->smallbuf; in receive_encrypted_read()
4153 server->smallbuf = (char *)cifs_small_buf_get(); in receive_encrypted_read()
4158 dw->server = server; in receive_encrypted_read()
4167 rc = decrypt_raw_data(server, buf, server->vals->read_rsp_size, in receive_encrypted_read()
4172 *mid = smb2_find_mid(server, buf); in receive_encrypted_read()
4178 rc = handle_read_data(server, *mid, buf, in receive_encrypted_read()
4179 server->vals->read_rsp_size, in receive_encrypted_read()
4189 cifs_discard_remaining_data(server); in receive_encrypted_read()
4194 receive_encrypted_standard(struct TCP_Server_Info *server, in receive_encrypted_standard() argument
4199 char *buf = server->smallbuf; in receive_encrypted_standard()
4201 unsigned int pdu_length = server->pdu_size; in receive_encrypted_standard()
4211 server->large_buf = true; in receive_encrypted_standard()
4212 memcpy(server->bigbuf, buf, server->total_read); in receive_encrypted_standard()
4213 buf = server->bigbuf; in receive_encrypted_standard()
4217 length = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1, in receive_encrypted_standard()
4218 pdu_length - HEADER_SIZE(server) + 1); in receive_encrypted_standard()
4221 server->total_read += length; in receive_encrypted_standard()
4224 length = decrypt_raw_data(server, buf, buf_size, NULL, 0, 0); in receive_encrypted_standard()
4228 next_is_large = server->large_buf; in receive_encrypted_standard()
4241 mid_entry = smb2_find_mid(server, buf); in receive_encrypted_standard()
4247 mid_entry->resp_buf_size = server->pdu_size; in receive_encrypted_standard()
4258 ret = mid_entry->handle(server, mid_entry); in receive_encrypted_standard()
4260 ret = cifs_handle_standard(server, mid_entry); in receive_encrypted_standard()
4264 server->large_buf = next_is_large; in receive_encrypted_standard()
4266 server->bigbuf = buf = next_buffer; in receive_encrypted_standard()
4268 server->smallbuf = buf = next_buffer; in receive_encrypted_standard()
4287 smb3_receive_transform(struct TCP_Server_Info *server, in smb3_receive_transform() argument
4290 char *buf = server->smallbuf; in smb3_receive_transform()
4291 unsigned int pdu_length = server->pdu_size; in smb3_receive_transform()
4299 cifs_reconnect(server); in smb3_receive_transform()
4300 wake_up(&server->response_q); in smb3_receive_transform()
4306 cifs_reconnect(server); in smb3_receive_transform()
4307 wake_up(&server->response_q); in smb3_receive_transform()
4312 if (pdu_length > CIFSMaxBufSize + MAX_HEADER_SIZE(server)) { in smb3_receive_transform()
4313 return receive_encrypted_read(server, &mids[0], num_mids); in smb3_receive_transform()
4316 return receive_encrypted_standard(server, mids, bufs, num_mids); in smb3_receive_transform()
4320 smb3_handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid) in smb3_handle_read_data() argument
4322 char *buf = server->large_buf ? server->bigbuf : server->smallbuf; in smb3_handle_read_data()
4324 return handle_read_data(server, mid, buf, server->pdu_size, in smb3_handle_read_data()
4396 if (tcon->ses->server->oplocks) in smb2_make_node()
4400 rc = tcon->ses->server->ops->open(xid, &oparms, &oplock, buf); in smb2_make_node()
4420 rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms, in smb2_make_node()
4426 rc = tcon->ses->server->ops->sync_write(xid, &fid, &io_parms, in smb2_make_node()
4429 tcon->ses->server->ops->close(xid, tcon, &fid); in smb2_make_node()