Lines Matching refs:server
38 change_conf(struct TCP_Server_Info *server) in change_conf() argument
40 server->credits += server->echo_credits + server->oplock_credits; in change_conf()
41 server->oplock_credits = server->echo_credits = 0; in change_conf()
42 switch (server->credits) { in change_conf()
46 server->echoes = false; in change_conf()
47 server->oplocks = false; in change_conf()
51 server->echoes = true; in change_conf()
52 server->oplocks = false; in change_conf()
53 server->echo_credits = 1; in change_conf()
57 server->echoes = true; in change_conf()
59 server->oplocks = true; in change_conf()
60 server->oplock_credits = 1; in change_conf()
62 server->oplocks = false; in change_conf()
64 server->echo_credits = 1; in change_conf()
66 server->credits -= server->echo_credits + server->oplock_credits; in change_conf()
71 smb2_add_credits(struct TCP_Server_Info *server, const unsigned int add, in smb2_add_credits() argument
75 spin_lock(&server->req_lock); in smb2_add_credits()
76 val = server->ops->get_credits_field(server, optype); 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()
99 cifs_reconnect(server); in smb2_add_credits()
103 smb2_set_credits(struct TCP_Server_Info *server, const int val) in smb2_set_credits() argument
105 spin_lock(&server->req_lock); in smb2_set_credits()
106 server->credits = val; in smb2_set_credits()
107 spin_unlock(&server->req_lock); in smb2_set_credits()
111 smb2_get_credits_field(struct TCP_Server_Info *server, const int optype) in smb2_get_credits_field() argument
115 return &server->echo_credits; in smb2_get_credits_field()
117 return &server->oplock_credits; in smb2_get_credits_field()
119 return &server->credits; in smb2_get_credits_field()
132 smb2_wait_mtu_credits(struct TCP_Server_Info *server, unsigned int size, in smb2_wait_mtu_credits() argument
138 spin_lock(&server->req_lock); in smb2_wait_mtu_credits()
140 if (server->credits <= 0) { in smb2_wait_mtu_credits()
141 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
142 cifs_num_waiters_inc(server); in smb2_wait_mtu_credits()
143 rc = wait_event_killable(server->request_q, in smb2_wait_mtu_credits()
144 has_credits(server, &server->credits)); in smb2_wait_mtu_credits()
145 cifs_num_waiters_dec(server); in smb2_wait_mtu_credits()
148 spin_lock(&server->req_lock); in smb2_wait_mtu_credits()
150 if (server->tcpStatus == CifsExiting) { in smb2_wait_mtu_credits()
151 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
155 scredits = server->credits; in smb2_wait_mtu_credits()
169 server->credits -= *credits; in smb2_wait_mtu_credits()
170 server->in_flight++; in smb2_wait_mtu_credits()
174 spin_unlock(&server->req_lock); in smb2_wait_mtu_credits()
179 smb2_get_next_mid(struct TCP_Server_Info *server) in smb2_get_next_mid() argument
184 mid = server->CurrentMid++; in smb2_get_next_mid()
190 smb2_find_mid(struct TCP_Server_Info *server, char *buf) in smb2_find_mid() argument
202 list_for_each_entry(mid, &server->pending_mid_q, qhead) { in smb2_find_mid()
216 smb2_dump_detail(void *buf, struct TCP_Server_Info *server) in smb2_dump_detail() argument
225 server->ops->calc_smb_size(buf, server)); in smb2_dump_detail()
230 smb2_need_neg(struct TCP_Server_Info *server) in smb2_need_neg() argument
232 return server->max_read == 0; in smb2_need_neg()
239 ses->server->CurrentMid = 0; in smb2_negotiate()
250 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_wsize() local
255 wsize = min_t(unsigned int, wsize, server->max_write); in smb2_negotiate_wsize()
257 if (server->rdma) { in smb2_negotiate_wsize()
258 if (server->sign) in smb2_negotiate_wsize()
260 wsize, server->smbd_conn->max_fragmented_send_size); in smb2_negotiate_wsize()
263 wsize, server->smbd_conn->max_readwrite_size); in smb2_negotiate_wsize()
266 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_negotiate_wsize()
275 struct TCP_Server_Info *server = tcon->ses->server; in smb2_negotiate_rsize() local
280 rsize = min_t(unsigned int, rsize, server->max_read); in smb2_negotiate_rsize()
282 if (server->rdma) { in smb2_negotiate_rsize()
283 if (server->sign) in smb2_negotiate_rsize()
285 rsize, server->smbd_conn->max_fragmented_recv_size); in smb2_negotiate_rsize()
288 rsize, server->smbd_conn->max_readwrite_size); in smb2_negotiate_rsize()
292 if (!(server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_negotiate_rsize()
904 smb2_can_echo(struct TCP_Server_Info *server) in smb2_can_echo() argument
906 return server->echoes; in smb2_can_echo()
1013 struct TCP_Server_Info *server = tlink_tcon(cfile->tlink)->ses->server; in smb2_set_fid() local
1017 server->ops->set_oplock_level(cinode, oplock, fid->epoch, in smb2_set_fid()
1512 smb2_is_status_pending(char *buf, struct TCP_Server_Info *server, int length) in smb2_is_status_pending() argument
1520 spin_lock(&server->req_lock); in smb2_is_status_pending()
1521 server->credits += le16_to_cpu(shdr->CreditRequest); in smb2_is_status_pending()
1522 spin_unlock(&server->req_lock); in smb2_is_status_pending()
1523 wake_up(&server->request_q); in smb2_is_status_pending()
1550 if (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_LEASING) in smb2_oplock_response()
1571 smb2_set_next_command(struct TCP_Server_Info *server, struct smb_rqst *rqst) in smb2_set_next_command() argument
1574 unsigned long len = smb_rqst_len(server, rqst); in smb2_set_next_command()
1581 len = smb_rqst_len(server, rqst); in smb2_set_next_command()
1601 struct TCP_Server_Info *server = ses->server; in smb2_queryfs() local
1630 smb2_set_next_command(server, &rqst[0]); in smb2_queryfs()
1642 smb2_set_next_command(server, &rqst[1]); in smb2_queryfs()
2274 smb2_downgrade_oplock(struct TCP_Server_Info *server, in smb2_downgrade_oplock() argument
2278 server->ops->set_oplock_level(cinode, SMB2_OPLOCK_LEVEL_II, in smb2_downgrade_oplock()
2281 server->ops->set_oplock_level(cinode, 0, 0, NULL); in smb2_downgrade_oplock()
2559 smb2_get_enc_key(struct TCP_Server_Info *server, __u64 ses_id, int enc, u8 *key) in smb2_get_enc_key() argument
2565 list_for_each_entry(ses, &server->smb_ses_list, smb_ses_list) { in smb2_get_enc_key()
2586 crypt_message(struct TCP_Server_Info *server, int num_rqst, in crypt_message() argument
2603 rc = smb2_get_enc_key(server, tr_hdr->SessionId, enc, key); in crypt_message()
2610 rc = smb3_crypto_aead_allocate(server); in crypt_message()
2616 tfm = enc ? server->secmech.ccmaesencrypt : in crypt_message()
2617 server->secmech.ccmaesdecrypt; in crypt_message()
2706 smb3_init_transform_rq(struct TCP_Server_Info *server, int num_rqst, in smb3_init_transform_rq() argument
2731 orig_len += smb_rqst_len(server, &old_rq[i - 1]); in smb3_init_transform_rq()
2758 rc = crypt_message(server, num_rqst, new_rq, 1); in smb3_init_transform_rq()
2779 decrypt_raw_data(struct TCP_Server_Info *server, char *buf, in decrypt_raw_data() argument
2799 rc = crypt_message(server, 1, &rqst, 0); in decrypt_raw_data()
2807 server->total_read = buf_data_size + page_data_size; in decrypt_raw_data()
2813 read_data_into_pages(struct TCP_Server_Info *server, struct page **pages, in read_data_into_pages() argument
2832 length = cifs_read_page_from_socket(server, page, 0, n); in read_data_into_pages()
2835 server->total_read += length; in read_data_into_pages()
2870 handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid, in handle_read_data() argument
2892 if (server->ops->is_session_expired && in handle_read_data()
2893 server->ops->is_session_expired(buf)) { in handle_read_data()
2894 cifs_reconnect(server); in handle_read_data()
2895 wake_up(&server->response_q); in handle_read_data()
2899 if (server->ops->is_status_pending && in handle_read_data()
2900 server->ops->is_status_pending(buf, server, 0)) in handle_read_data()
2903 rdata->result = server->ops->map_error(buf, false); in handle_read_data()
2911 data_offset = server->ops->read_data_offset(buf); in handle_read_data()
2915 data_len = server->ops->read_data_length(buf, use_rdma_mr); in handle_read_data()
2917 if (data_offset < server->vals->read_rsp_size) { in handle_read_data()
2925 data_offset = server->vals->read_rsp_size; in handle_read_data()
2935 pad_len = data_offset - server->vals->read_rsp_size; in handle_read_data()
2984 rdata->iov[1].iov_len = server->vals->read_rsp_size - 4; in handle_read_data()
2986 rdata->iov[0].iov_base, server->vals->read_rsp_size); in handle_read_data()
2988 length = rdata->copy_into_pages(server, rdata, &iter); in handle_read_data()
3000 receive_encrypted_read(struct TCP_Server_Info *server, struct mid_q_entry **mid) in receive_encrypted_read() argument
3002 char *buf = server->smallbuf; in receive_encrypted_read()
3007 unsigned int buflen = server->pdu_size; in receive_encrypted_read()
3011 len = min_t(unsigned int, buflen, server->vals->read_rsp_size + in receive_encrypted_read()
3012 sizeof(struct smb2_transform_hdr)) - HEADER_SIZE(server) + 1; in receive_encrypted_read()
3014 rc = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1, len); in receive_encrypted_read()
3017 server->total_read += rc; in receive_encrypted_read()
3020 server->vals->read_rsp_size; in receive_encrypted_read()
3038 rc = read_data_into_pages(server, pages, npages, len); in receive_encrypted_read()
3042 rc = cifs_discard_remaining_data(server); in receive_encrypted_read()
3046 rc = decrypt_raw_data(server, buf, server->vals->read_rsp_size, in receive_encrypted_read()
3051 *mid = smb2_find_mid(server, buf); in receive_encrypted_read()
3057 rc = handle_read_data(server, *mid, buf, in receive_encrypted_read()
3058 server->vals->read_rsp_size, in receive_encrypted_read()
3068 cifs_discard_remaining_data(server); in receive_encrypted_read()
3073 receive_encrypted_standard(struct TCP_Server_Info *server, in receive_encrypted_standard() argument
3078 char *buf = server->smallbuf; in receive_encrypted_standard()
3081 unsigned int pdu_length = server->pdu_size; in receive_encrypted_standard()
3091 server->large_buf = true; in receive_encrypted_standard()
3092 memcpy(server->bigbuf, buf, server->total_read); in receive_encrypted_standard()
3093 buf = server->bigbuf; in receive_encrypted_standard()
3097 length = cifs_read_from_socket(server, buf + HEADER_SIZE(server) - 1, in receive_encrypted_standard()
3098 pdu_length - HEADER_SIZE(server) + 1); in receive_encrypted_standard()
3101 server->total_read += length; in receive_encrypted_standard()
3104 length = decrypt_raw_data(server, buf, buf_size, NULL, 0, 0); in receive_encrypted_standard()
3108 next_is_large = server->large_buf; in receive_encrypted_standard()
3113 tmpbuf = server->bigbuf; in receive_encrypted_standard()
3116 tmpbuf = server->smallbuf; in receive_encrypted_standard()
3124 mid_entry = smb2_find_mid(server, buf); in receive_encrypted_standard()
3130 mid_entry->resp_buf_size = server->pdu_size; in receive_encrypted_standard()
3141 ret = mid_entry->handle(server, mid_entry); in receive_encrypted_standard()
3143 ret = cifs_handle_standard(server, mid_entry); in receive_encrypted_standard()
3147 server->large_buf = next_is_large; in receive_encrypted_standard()
3149 server->bigbuf = next_buffer; in receive_encrypted_standard()
3151 server->smallbuf = next_buffer; in receive_encrypted_standard()
3161 smb3_receive_transform(struct TCP_Server_Info *server, in smb3_receive_transform() argument
3164 char *buf = server->smallbuf; in smb3_receive_transform()
3165 unsigned int pdu_length = server->pdu_size; in smb3_receive_transform()
3173 cifs_reconnect(server); in smb3_receive_transform()
3174 wake_up(&server->response_q); in smb3_receive_transform()
3180 cifs_reconnect(server); in smb3_receive_transform()
3181 wake_up(&server->response_q); in smb3_receive_transform()
3186 if (pdu_length > CIFSMaxBufSize + MAX_HEADER_SIZE(server)) in smb3_receive_transform()
3187 return receive_encrypted_read(server, &mids[0]); in smb3_receive_transform()
3189 return receive_encrypted_standard(server, mids, bufs, num_mids); in smb3_receive_transform()
3193 smb3_handle_read_data(struct TCP_Server_Info *server, struct mid_q_entry *mid) in smb3_handle_read_data() argument
3195 char *buf = server->large_buf ? server->bigbuf : server->smallbuf; in smb3_handle_read_data()
3197 return handle_read_data(server, mid, buf, server->pdu_size, in smb3_handle_read_data()