Lines Matching full:tcon

78 int smb3_encryption_required(const struct cifs_tcon *tcon)  in smb3_encryption_required()  argument
80 if (!tcon || !tcon->ses) in smb3_encryption_required()
82 if ((tcon->ses->session_flags & SMB2_SESSION_FLAG_ENCRYPT_DATA) || in smb3_encryption_required()
83 (tcon->share_flags & SHI1005_FLAGS_ENCRYPT_DATA)) in smb3_encryption_required()
85 if (tcon->seal && in smb3_encryption_required()
86 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in smb3_encryption_required()
89 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_ENCRYPTION)) in smb3_encryption_required()
96 const struct cifs_tcon *tcon, in smb2_hdr_assemble() argument
134 if (!tcon) in smb2_hdr_assemble()
143 shdr->Id.SyncId.TreeId = cpu_to_le32(tcon->tid); in smb2_hdr_assemble()
145 if (tcon->ses) in smb2_hdr_assemble()
146 shdr->SessionId = cpu_to_le64(tcon->ses->Suid); in smb2_hdr_assemble()
158 /* if (tcon->share_flags & SHI1005_FLAGS_DFS) in smb2_hdr_assemble()
161 if (server && server->sign && !smb3_encryption_required(tcon)) in smb2_hdr_assemble()
218 smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon, in smb2_reconnect() argument
226 * SMB2s NegProt, SessSetup, Logoff do not have tcon yet so in smb2_reconnect()
230 if (tcon == NULL) in smb2_reconnect()
236 spin_lock(&tcon->tc_lock); in smb2_reconnect()
237 if (tcon->status == TID_EXITING) { in smb2_reconnect()
242 spin_unlock(&tcon->tc_lock); in smb2_reconnect()
248 spin_unlock(&tcon->tc_lock); in smb2_reconnect()
250 ses = tcon->ses; in smb2_reconnect()
289 rc = cifs_wait_for_server_reconnect(server, tcon->retry); in smb2_reconnect()
294 if (!cifs_chan_needs_reconnect(ses, server) && !tcon->need_reconnect) { in smb2_reconnect()
299 cifs_dbg(FYI, "sess reconnect mask: 0x%lx, tcon reconnect: %d", in smb2_reconnect()
300 tcon->ses->chans_need_reconnect, in smb2_reconnect()
301 tcon->need_reconnect); in smb2_reconnect()
317 if (!tcon->retry) in smb2_reconnect()
336 if (tcon->need_reconnect) in smb2_reconnect()
348 if (!tcon->retry) in smb2_reconnect()
379 if (rc == -EACCES && !tcon->retry) in smb2_reconnect()
385 if (!tcon->need_reconnect) { in smb2_reconnect()
389 cifs_mark_open_files_invalid(tcon); in smb2_reconnect()
390 if (tcon->use_persistent) in smb2_reconnect()
391 tcon->need_reopen_files = true; in smb2_reconnect()
393 rc = cifs_tree_connect(0, tcon); in smb2_reconnect()
395 cifs_dbg(FYI, "reconnect tcon rc = %d\n", rc); in smb2_reconnect()
397 /* If sess reconnected but tcon didn't, something strange ... */ in smb2_reconnect()
399 cifs_dbg(VFS, "reconnect tcon failed rc = %d\n", rc); in smb2_reconnect()
423 rc = server->ops->query_server_interfaces(xid, tcon, false); in smb2_reconnect()
427 if (!tcon->ipc && !tcon->dummy) in smb2_reconnect()
428 queue_delayed_work(cifsiod_wq, &tcon->query_interfaces, in smb2_reconnect()
494 fill_small_buf(__le16 smb2_command, struct cifs_tcon *tcon, in fill_small_buf() argument
509 smb2_hdr_assemble(&spdu->hdr, smb2_command, tcon, server); in fill_small_buf()
520 static int __smb2_plain_req_init(__le16 smb2_command, struct cifs_tcon *tcon, in __smb2_plain_req_init() argument
539 fill_small_buf(smb2_command, tcon, server, in __smb2_plain_req_init()
543 if (tcon != NULL) { in __smb2_plain_req_init()
545 cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_sent[com_code]); in __smb2_plain_req_init()
546 cifs_stats_inc(&tcon->num_smbs_sent); in __smb2_plain_req_init()
552 static int smb2_plain_req_init(__le16 smb2_command, struct cifs_tcon *tcon, in smb2_plain_req_init() argument
558 rc = smb2_reconnect(smb2_command, tcon, server, false); in smb2_plain_req_init()
562 return __smb2_plain_req_init(smb2_command, tcon, server, request_buf, in smb2_plain_req_init()
566 static int smb2_ioctl_req_init(u32 opcode, struct cifs_tcon *tcon, in smb2_ioctl_req_init() argument
578 (tcon->ses->flags & CIFS_SES_FLAGS_PENDING_QUERY_INTERFACES))) in smb2_ioctl_req_init()
579 return __smb2_plain_req_init(SMB2_IOCTL, tcon, server, in smb2_ioctl_req_init()
582 return smb2_plain_req_init(SMB2_IOCTL, tcon, server, in smb2_ioctl_req_init()
1136 * No tcon so can't do in SMB2_negotiate()
1137 * cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_fail[SMB2...]); in SMB2_negotiate()
1276 int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon) in smb3_validate_negotiate() argument
1283 struct TCP_Server_Info *server = tcon->ses->server; in smb3_validate_negotiate()
1298 if (tcon->ses->session_flags & SMB2_SESSION_FLAG_IS_GUEST) in smb3_validate_negotiate()
1301 if (tcon->ses->user_name == NULL) { in smb3_validate_negotiate()
1306 if (tcon->ses->session_flags & SMB2_SESSION_FLAG_IS_NULL) in smb3_validate_negotiate()
1315 if (tcon->ses->chan_max > 1) in smb3_validate_negotiate()
1321 if (tcon->ses->sign) in smb3_validate_negotiate()
1359 rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, in smb3_validate_negotiate()
1987 /* since no tcon, smb2_init can not do this, so do here */ in SMB2_logoff()
2008 * No tcon so can't do in SMB2_logoff()
2009 * cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_fail[SMB2...]); in SMB2_logoff()
2016 static inline void cifs_stats_fail_inc(struct cifs_tcon *tcon, uint16_t code) in cifs_stats_fail_inc() argument
2018 cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_failed[code]); in cifs_stats_fail_inc()
2024 static inline void init_copy_chunk_defaults(struct cifs_tcon *tcon) in init_copy_chunk_defaults() argument
2026 tcon->max_chunks = 256; in init_copy_chunk_defaults()
2027 tcon->max_bytes_chunk = 1048576; in init_copy_chunk_defaults()
2028 tcon->max_bytes_copy = 16777216; in init_copy_chunk_defaults()
2033 struct cifs_tcon *tcon, const struct nls_table *cp) in SMB2_tcon() argument
2048 cifs_dbg(FYI, "TCON\n"); in SMB2_tcon()
2065 tcon->tid = 0; in SMB2_tcon()
2066 atomic_set(&tcon->num_remote_opens, 0); in SMB2_tcon()
2067 rc = smb2_plain_req_init(SMB2_TREE_CONNECT, tcon, server, in SMB2_tcon()
2074 if (smb3_encryption_required(tcon)) in SMB2_tcon()
2088 * 3.11 tcon req must be signed if not encrypted. See MS-SMB2 3.2.4.1.1 in SMB2_tcon()
2093 !smb3_encryption_required(tcon) && in SMB2_tcon()
2115 trace_smb3_tcon(xid, tcon->tid, ses->Suid, tree, rc); in SMB2_tcon()
2117 cifs_stats_fail_inc(tcon, SMB2_TREE_CONNECT_HE); in SMB2_tcon()
2118 tcon->need_reconnect = true; in SMB2_tcon()
2127 tcon->pipe = true; in SMB2_tcon()
2131 tcon->print = true; in SMB2_tcon()
2140 tcon->share_flags = le32_to_cpu(rsp->ShareFlags); in SMB2_tcon()
2141 tcon->capabilities = rsp->Capabilities; /* we keep caps little endian */ in SMB2_tcon()
2142 tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess); in SMB2_tcon()
2143 tcon->tid = le32_to_cpu(rsp->hdr.Id.SyncId.TreeId); in SMB2_tcon()
2144 strscpy(tcon->tree_name, tree, sizeof(tcon->tree_name)); in SMB2_tcon()
2147 ((tcon->share_flags & SHI1005_FLAGS_DFS) == 0)) in SMB2_tcon()
2150 if (tcon->seal && in SMB2_tcon()
2154 init_copy_chunk_defaults(tcon); in SMB2_tcon()
2156 rc = server->ops->validate_negotiate(xid, tcon); in SMB2_tcon()
2158 if (tcon->share_flags & SMB2_SHAREFLAG_ISOLATED_TRANSPORT) in SMB2_tcon()
2173 SMB2_tdis(const unsigned int xid, struct cifs_tcon *tcon) in SMB2_tdis() argument
2178 struct cifs_ses *ses = tcon->ses; in SMB2_tdis()
2191 trace_smb3_tdis_enter(xid, tcon->tid, ses->Suid, tcon->tree_name); in SMB2_tdis()
2193 if ((tcon->need_reconnect) || in SMB2_tdis()
2194 (CIFS_ALL_CHANS_NEED_RECONNECT(tcon->ses))) { in SMB2_tdis()
2200 invalidate_all_cached_dirs(tcon); in SMB2_tdis()
2202 rc = smb2_plain_req_init(SMB2_TREE_DISCONNECT, tcon, server, in SMB2_tdis()
2208 if (smb3_encryption_required(tcon)) in SMB2_tdis()
2224 cifs_stats_fail_inc(tcon, SMB2_TREE_DISCONNECT_HE); in SMB2_tdis()
2225 trace_smb3_tdis_err(xid, tcon->tid, ses->Suid, rc); in SMB2_tdis()
2227 trace_smb3_tdis_done(xid, tcon->tid, ses->Suid); in SMB2_tdis()
2451 buf->dcontext.Timeout = cpu_to_le32(oparms->tcon->handle_timeout); in create_durable_v2_buf()
2822 umode_t mode, struct cifs_tcon *tcon, in smb311_posix_mkdir() argument
2829 struct cifs_ses *ses = tcon->ses; in smb311_posix_mkdir()
2865 rc = smb2_plain_req_init(SMB2_CREATE, tcon, server, in smb311_posix_mkdir()
2871 if (smb3_encryption_required(tcon)) in smb311_posix_mkdir()
2896 if (tcon->share_flags & SHI1005_FLAGS_DFS) { in smb311_posix_mkdir()
2902 tcon->tree_name, utf16_path); in smb311_posix_mkdir()
2935 if (tcon->posix_extensions) { in smb311_posix_mkdir()
2953 trace_smb3_posix_mkdir_enter(xid, tcon->tid, ses->Suid, full_path, CREATE_NOT_FILE, in smb311_posix_mkdir()
2963 cifs_stats_fail_inc(tcon, SMB2_CREATE_HE); in smb311_posix_mkdir()
2964 trace_smb3_posix_mkdir_err(xid, tcon->tid, ses->Suid, in smb311_posix_mkdir()
2982 trace_smb3_posix_mkdir_done(xid, rsp->PersistentFileId, tcon->tid, ses->Suid, in smb311_posix_mkdir()
2985 SMB2_close(xid, tcon, rsp->PersistentFileId, rsp->VolatileFileId); in smb311_posix_mkdir()
2998 smb2_should_replay(tcon, &retries, &cur_sleep)) in smb311_posix_mkdir()
3005 SMB2_open_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_open_init() argument
3019 rc = smb2_plain_req_init(SMB2_CREATE, tcon, server, in SMB2_open_init()
3051 if (tcon->share_flags & SHI1005_FLAGS_DFS) { in SMB2_open_init()
3057 tcon->tree_name, path); in SMB2_open_init()
3080 if ((!server->oplocks) || (tcon->no_lease)) in SMB2_open_init()
3100 tcon->use_persistent); in SMB2_open_init()
3105 if (tcon->posix_extensions) { in SMB2_open_init()
3111 if (tcon->snapshot_time) { in SMB2_open_init()
3113 rc = add_twarp_context(iov, &n_iov, tcon->snapshot_time); in SMB2_open_init()
3197 struct cifs_tcon *tcon = oparms->tcon; in SMB2_open() local
3198 struct cifs_ses *ses = tcon->ses; in SMB2_open()
3217 if (smb3_encryption_required(tcon)) in SMB2_open()
3225 rc = SMB2_open_init(tcon, server, in SMB2_open()
3230 trace_smb3_open_enter(xid, tcon->tid, tcon->ses->Suid, oparms->path, in SMB2_open()
3242 cifs_stats_fail_inc(tcon, SMB2_CREATE_HE); in SMB2_open()
3249 trace_smb3_open_err(xid, tcon->tid, ses->Suid, in SMB2_open()
3253 tcon->tree_name); in SMB2_open()
3254 tcon->need_reconnect = true; in SMB2_open()
3260 trace_smb3_open_done(xid, rsp->PersistentFileId, tcon->tid, ses->Suid, in SMB2_open()
3263 atomic_inc(&tcon->num_remote_opens); in SMB2_open()
3291 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_open()
3298 SMB2_ioctl_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_ioctl_init() argument
3310 rc = smb2_ioctl_req_init(opcode, tcon, server, in SMB2_ioctl_init()
3404 SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_ioctl() argument
3420 if (!tcon) in SMB2_ioctl()
3423 ses = tcon->ses; in SMB2_ioctl()
3444 if (smb3_encryption_required(tcon)) in SMB2_ioctl()
3452 rc = SMB2_ioctl_init(tcon, server, in SMB2_ioctl()
3467 trace_smb3_fsctl_err(xid, persistent_fid, tcon->tid, in SMB2_ioctl()
3471 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
3476 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
3481 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
3532 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_ioctl()
3543 SMB2_set_compression(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_compression() argument
3553 rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_compression()
3565 SMB2_close_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_close_init() argument
3574 rc = smb2_plain_req_init(SMB2_CLOSE, tcon, server, in SMB2_close_init()
3599 __SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, in __SMB2_close() argument
3605 struct cifs_ses *ses = tcon->ses; in __SMB2_close()
3626 if (smb3_encryption_required(tcon)) in __SMB2_close()
3638 trace_smb3_close_enter(xid, persistent_fid, tcon->tid, ses->Suid); in __SMB2_close()
3639 rc = SMB2_close_init(tcon, server, in __SMB2_close()
3653 cifs_stats_fail_inc(tcon, SMB2_CLOSE_HE); in __SMB2_close()
3654 trace_smb3_close_err(xid, persistent_fid, tcon->tid, ses->Suid, in __SMB2_close()
3658 trace_smb3_close_done(xid, persistent_fid, tcon->tid, in __SMB2_close()
3664 atomic_dec(&tcon->num_remote_opens); in __SMB2_close()
3675 tmp_rc = smb2_handle_cancelled_close(tcon, persistent_fid, in __SMB2_close()
3683 smb2_should_replay(tcon, &retries, &cur_sleep)) in __SMB2_close()
3690 SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_close() argument
3693 return __SMB2_close(xid, tcon, persistent_fid, volatile_fid, NULL); in SMB2_close()
3752 SMB2_query_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_query_info_init() argument
3768 rc = smb2_plain_req_init(SMB2_QUERY_INFO, tcon, server, in SMB2_query_info_init()
3801 query_info(const unsigned int xid, struct cifs_tcon *tcon, in query_info() argument
3812 struct cifs_ses *ses = tcon->ses; in query_info()
3832 if (smb3_encryption_required(tcon)) in query_info()
3840 rc = SMB2_query_info_init(tcon, server, in query_info()
3847 trace_smb3_query_info_enter(xid, persistent_fid, tcon->tid, in query_info()
3858 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in query_info()
3859 trace_smb3_query_info_err(xid, persistent_fid, tcon->tid, in query_info()
3864 trace_smb3_query_info_done(xid, persistent_fid, tcon->tid, in query_info()
3897 smb2_should_replay(tcon, &retries, &cur_sleep)) in query_info()
3903 int SMB2_query_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_info() argument
3906 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_query_info()
3916 SMB311_posix_query_info(const unsigned int xid, struct cifs_tcon *tcon,
3923 return query_info(xid, tcon, persistent_fid, volatile_fid,
3931 SMB2_query_acl(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_acl() argument
3937 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_query_acl()
3943 SMB2_get_srv_num(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_get_srv_num() argument
3946 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_get_srv_num()
3960 struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_notify_init() argument
3969 rc = smb2_plain_req_init(SMB2_CHANGE_NOTIFY, tcon, server, in SMB2_notify_init()
3992 SMB2_change_notify(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_change_notify() argument
3997 struct cifs_ses *ses = tcon->ses; in SMB2_change_notify()
4017 if (smb3_encryption_required(tcon)) in SMB2_change_notify()
4028 rc = SMB2_notify_init(xid, &rqst, tcon, server, in SMB2_change_notify()
4034 trace_smb3_notify_enter(xid, persistent_fid, tcon->tid, ses->Suid, in SMB2_change_notify()
4044 cifs_stats_fail_inc(tcon, SMB2_CHANGE_NOTIFY_HE); in SMB2_change_notify()
4045 trace_smb3_notify_err(xid, persistent_fid, tcon->tid, ses->Suid, in SMB2_change_notify()
4048 trace_smb3_notify_done(xid, persistent_fid, tcon->tid, in SMB2_change_notify()
4076 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_change_notify()
4109 struct cifs_tcon *tcon) in cifs_renegotiate_iosize() argument
4113 if (server == NULL || tcon == NULL) in cifs_renegotiate_iosize()
4116 spin_lock(&tcon->sb_list_lock); in cifs_renegotiate_iosize()
4117 list_for_each_entry(cifs_sb, &tcon->cifs_sb_list, tcon_sb_link) in cifs_renegotiate_iosize()
4118 cifs_negotiate_iosize(server, cifs_sb->ctx, tcon); in cifs_renegotiate_iosize()
4119 spin_unlock(&tcon->sb_list_lock); in cifs_renegotiate_iosize()
4128 struct cifs_tcon *tcon, *tcon2; in smb2_reconnect_server() local
4147 /* Prevent simultaneous reconnects that can corrupt tcon->rlist list */ in smb2_reconnect_server()
4172 list_for_each_entry(tcon, &ses->tcon_list, tcon_list) { in smb2_reconnect_server()
4173 if (tcon->need_reconnect || tcon->need_reopen_files) { in smb2_reconnect_server()
4174 tcon->tc_count++; in smb2_reconnect_server()
4175 trace_smb3_tcon_ref(tcon->debug_id, tcon->tc_count, in smb2_reconnect_server()
4177 list_add_tail(&tcon->rlist, &tmp_list); in smb2_reconnect_server()
4192 * binding session, but tcon is healthy (some other channel in smb2_reconnect_server()
4205 list_for_each_entry_safe(tcon, tcon2, &tmp_list, rlist) { in smb2_reconnect_server()
4206 rc = smb2_reconnect(SMB2_INTERNAL_CMD, tcon, server, true); in smb2_reconnect_server()
4208 cifs_renegotiate_iosize(server, tcon); in smb2_reconnect_server()
4209 cifs_reopen_persistent_handles(tcon); in smb2_reconnect_server()
4212 list_del_init(&tcon->rlist); in smb2_reconnect_server()
4213 if (tcon->ipc) in smb2_reconnect_server()
4214 cifs_put_smb_ses(tcon->ses); in smb2_reconnect_server()
4216 cifs_put_tcon(tcon, netfs_trace_tcon_ref_put_reconnect_server); in smb2_reconnect_server()
4222 /* allocate a dummy tcon struct used for reconnect */ in smb2_reconnect_server()
4223 tcon = tcon_info_alloc(false, netfs_trace_tcon_ref_new_reconnect_server); in smb2_reconnect_server()
4224 if (!tcon) { in smb2_reconnect_server()
4232 tcon->status = TID_GOOD; in smb2_reconnect_server()
4233 tcon->dummy = true; in smb2_reconnect_server()
4237 tcon->ses = ses; in smb2_reconnect_server()
4238 rc = smb2_reconnect(SMB2_INTERNAL_CMD, tcon, server, true); in smb2_reconnect_server()
4244 tconInfoFree(tcon, netfs_trace_tcon_ref_free_reconnect_server); in smb2_reconnect_server()
4306 struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_flush_init() argument
4314 rc = smb2_plain_req_init(SMB2_FLUSH, tcon, server, in SMB2_flush_init()
4329 SMB2_flush(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_flush() argument
4332 struct cifs_ses *ses = tcon->ses; in SMB2_flush()
4351 if (smb3_encryption_required(tcon)) in SMB2_flush()
4359 rc = SMB2_flush_init(xid, &rqst, tcon, server, in SMB2_flush()
4364 trace_smb3_flush_enter(xid, persistent_fid, tcon->tid, ses->Suid); in SMB2_flush()
4373 cifs_stats_fail_inc(tcon, SMB2_FLUSH_HE); in SMB2_flush()
4374 trace_smb3_flush_err(xid, persistent_fid, tcon->tid, ses->Suid, in SMB2_flush()
4377 trace_smb3_flush_done(xid, persistent_fid, tcon->tid, in SMB2_flush()
4385 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_flush()
4395 struct cifs_tcon *tcon = io_parms->tcon; in smb3_use_rdma_offload() local
4398 if (!server || !tcon) in smb3_use_rdma_offload()
4410 if (smb3_encryption_required(tcon)) in smb3_use_rdma_offload()
4435 rc = smb2_plain_req_init(SMB2_READ, io_parms->tcon, server, in smb2_new_read_req()
4459 io_parms->tcon->tid, io_parms->tcon->ses->Suid, in smb2_new_read_req()
4523 struct cifs_tcon *tcon = tlink_tcon(rdata->req->cfile->tlink); in smb2_readv_callback() local
4565 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
4580 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
4605 cifs_stats_fail_inc(tcon, SMB2_READ_HE); in smb2_readv_callback()
4610 tcon->tid, tcon->ses->Suid, in smb2_readv_callback()
4619 tcon->tid, tcon->ses->Suid, in smb2_readv_callback()
4663 struct cifs_tcon *tcon = tlink_tcon(rdata->req->cfile->tlink); in smb2_async_readv() local
4671 rdata->server = cifs_pick_channel(tcon->ses); in smb2_async_readv()
4673 io_parms.tcon = tlink_tcon(rdata->req->cfile->tlink); in smb2_async_readv()
4686 if (smb3_encryption_required(io_parms.tcon)) in smb2_async_readv()
4719 cifs_stats_fail_inc(io_parms.tcon, SMB2_READ_HE); in smb2_async_readv()
4723 io_parms.tcon->tid, in smb2_async_readv()
4724 io_parms.tcon->ses->Suid, in smb2_async_readv()
4746 struct cifs_ses *ses = io_parms->tcon->ses; in SMB2_read()
4749 io_parms->server = cifs_pick_channel(io_parms->tcon->ses); in SMB2_read()
4756 if (smb3_encryption_required(io_parms->tcon)) in SMB2_read()
4772 cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE); in SMB2_read()
4776 io_parms->tcon->tid, ses->Suid, in SMB2_read()
4781 req->PersistentFileId, io_parms->tcon->tid, in SMB2_read()
4789 io_parms->tcon->tid, ses->Suid, in SMB2_read()
4824 struct cifs_tcon *tcon = tlink_tcon(wdata->req->cfile->tlink); in smb2_writev_callback() local
4863 cifs_stats_bytes_written(tcon, written); in smb2_writev_callback()
4907 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_writev_callback()
4912 tcon->tid, tcon->ses->Suid, wdata->subreq.start, in smb2_writev_callback()
4916 tcon->tree_name); in smb2_writev_callback()
4922 tcon->tid, tcon->ses->Suid, in smb2_writev_callback()
4944 struct cifs_tcon *tcon = tlink_tcon(wdata->req->cfile->tlink); in smb2_async_writev() local
4958 .tcon = tcon, in smb2_async_writev()
4968 rc = smb2_plain_req_init(SMB2_WRITE, tcon, server, in smb2_async_writev()
4980 if (smb3_encryption_required(tcon)) in smb2_async_writev()
5001 io_parms->tcon->tid, in smb2_async_writev()
5002 io_parms->tcon->ses->Suid, in smb2_async_writev()
5072 if (((flags & CIFS_TRANSFORM_REQ) != CIFS_TRANSFORM_REQ) && should_compress(tcon, &rqst)) in smb2_async_writev()
5083 io_parms->tcon->tid, in smb2_async_writev()
5084 io_parms->tcon->ses->Suid, in smb2_async_writev()
5088 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_async_writev()
5132 io_parms->server = cifs_pick_channel(io_parms->tcon->ses); in SMB2_write()
5140 rc = smb2_plain_req_init(SMB2_WRITE, io_parms->tcon, server, in SMB2_write()
5145 if (smb3_encryption_required(io_parms->tcon)) in SMB2_write()
5162 io_parms->tcon->tid, io_parms->tcon->ses->Suid, in SMB2_write()
5176 rc = cifs_send_recv(xid, io_parms->tcon->ses, server, in SMB2_write()
5184 io_parms->tcon->tid, in SMB2_write()
5185 io_parms->tcon->ses->Suid, in SMB2_write()
5187 cifs_stats_fail_inc(io_parms->tcon, SMB2_WRITE_HE); in SMB2_write()
5191 cifs_stats_bytes_written(io_parms->tcon, *nbytes); in SMB2_write()
5194 io_parms->tcon->tid, in SMB2_write()
5195 io_parms->tcon->ses->Suid, in SMB2_write()
5203 smb2_should_replay(io_parms->tcon, &retries, &cur_sleep)) in SMB2_write()
5357 struct cifs_tcon *tcon, in SMB2_query_directory_init() argument
5373 rc = smb2_plain_req_init(SMB2_QUERY_DIRECTORY, tcon, server, in SMB2_query_directory_init()
5423 trace_smb3_query_dir_enter(xid, persistent_fid, tcon->tid, in SMB2_query_directory_init()
5424 tcon->ses->Suid, index, output_size); in SMB2_query_directory_init()
5437 smb2_parse_query_directory(struct cifs_tcon *tcon, in smb2_parse_query_directory() argument
5512 SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_directory() argument
5522 struct cifs_ses *ses = tcon->ses; in SMB2_query_directory()
5535 if (smb3_encryption_required(tcon)) in SMB2_query_directory()
5543 rc = SMB2_query_directory_init(xid, tcon, server, in SMB2_query_directory()
5561 tcon->tid, tcon->ses->Suid, index, 0); in SMB2_query_directory()
5565 trace_smb3_query_dir_err(xid, persistent_fid, tcon->tid, in SMB2_query_directory()
5566 tcon->ses->Suid, index, 0, rc); in SMB2_query_directory()
5567 cifs_stats_fail_inc(tcon, SMB2_QUERY_DIRECTORY_HE); in SMB2_query_directory()
5572 rc = smb2_parse_query_directory(tcon, &rsp_iov, resp_buftype, in SMB2_query_directory()
5575 trace_smb3_query_dir_err(xid, persistent_fid, tcon->tid, in SMB2_query_directory()
5576 tcon->ses->Suid, index, 0, rc); in SMB2_query_directory()
5581 trace_smb3_query_dir_done(xid, persistent_fid, tcon->tid, in SMB2_query_directory()
5582 tcon->ses->Suid, index, srch_inf->entries_in_buffer); in SMB2_query_directory()
5589 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_query_directory()
5596 SMB2_set_info_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, in SMB2_set_info_init() argument
5607 rc = smb2_plain_req_init(SMB2_SET_INFO, tcon, server, in SMB2_set_info_init()
5646 send_set_info(const unsigned int xid, struct cifs_tcon *tcon, in send_set_info() argument
5657 struct cifs_ses *ses = tcon->ses; in send_set_info()
5673 if (smb3_encryption_required(tcon)) in send_set_info()
5684 rc = SMB2_set_info_init(tcon, server, in send_set_info()
5703 cifs_stats_fail_inc(tcon, SMB2_SET_INFO_HE); in send_set_info()
5704 trace_smb3_set_info_err(xid, persistent_fid, tcon->tid, in send_set_info()
5712 smb2_should_replay(tcon, &retries, &cur_sleep)) in send_set_info()
5719 SMB2_set_eof(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_set_eof() argument
5731 trace_smb3_set_eof(xid, persistent_fid, tcon->tid, tcon->ses->Suid, new_eof); in SMB2_set_eof()
5733 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_eof()
5739 SMB2_set_acl(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_acl() argument
5743 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_acl()
5749 SMB2_set_ea(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_ea() argument
5753 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_ea()
5759 SMB2_oplock_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_oplock_break() argument
5766 struct cifs_ses *ses = tcon->ses; in SMB2_oplock_break()
5781 rc = smb2_plain_req_init(SMB2_OPLOCK_BREAK, tcon, server, in SMB2_oplock_break()
5786 if (smb3_encryption_required(tcon)) in SMB2_oplock_break()
5810 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_oplock_break()
5815 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_oplock_break()
5853 build_qfs_info_req(struct kvec *iov, struct cifs_tcon *tcon, in build_qfs_info_req() argument
5864 if ((tcon->ses == NULL) || server == NULL) in build_qfs_info_req()
5867 rc = smb2_plain_req_init(SMB2_QUERY_INFO, tcon, server, in build_qfs_info_req()
5893 SMB311_posix_qfs_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB311_posix_qfs_info() argument
5902 struct cifs_ses *ses = tcon->ses; in SMB311_posix_qfs_info()
5913 rc = build_qfs_info_req(&iov, tcon, server, in SMB311_posix_qfs_info()
5920 if (smb3_encryption_required(tcon)) in SMB311_posix_qfs_info()
5934 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB311_posix_qfs_info()
5951 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB311_posix_qfs_info()
5958 SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_QFS_attr() argument
5967 struct cifs_ses *ses = tcon->ses; in SMB2_QFS_attr()
5995 rc = build_qfs_info_req(&iov, tcon, server, in SMB2_QFS_attr()
6001 if (smb3_encryption_required(tcon)) in SMB2_QFS_attr()
6015 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB2_QFS_attr()
6027 memcpy(&tcon->fsAttrInfo, offset in SMB2_QFS_attr()
6031 memcpy(&tcon->fsDevInfo, offset in SMB2_QFS_attr()
6036 tcon->ss_flags = le32_to_cpu(ss_info->Flags); in SMB2_QFS_attr()
6037 tcon->perf_sector_size = in SMB2_QFS_attr()
6042 tcon->vol_serial_number = vol_info->VolumeSerialNumber; in SMB2_QFS_attr()
6043 tcon->vol_create_time = vol_info->VolumeCreationTime; in SMB2_QFS_attr()
6050 smb2_should_replay(tcon, &retries, &cur_sleep)) in SMB2_QFS_attr()
6057 smb2_lockv(const unsigned int xid, struct cifs_tcon *tcon, in smb2_lockv() argument
6076 server = cifs_pick_channel(tcon->ses); in smb2_lockv()
6080 rc = smb2_plain_req_init(SMB2_LOCK, tcon, server, in smb2_lockv()
6085 if (smb3_encryption_required(tcon)) in smb2_lockv()
6101 cifs_stats_inc(&tcon->stats.cifs_stats.num_locks); in smb2_lockv()
6110 rc = cifs_send_recv(xid, tcon->ses, server, in smb2_lockv()
6116 cifs_stats_fail_inc(tcon, SMB2_LOCK_HE); in smb2_lockv()
6117 trace_smb3_lock_err(xid, persist_fid, tcon->tid, in smb2_lockv()
6118 tcon->ses->Suid, rc); in smb2_lockv()
6122 smb2_should_replay(tcon, &retries, &cur_sleep)) in smb2_lockv()
6129 SMB2_lock(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lock() argument
6142 return smb2_lockv(xid, tcon, persist_fid, volatile_fid, pid, 1, &lock); in SMB2_lock()
6146 SMB2_lease_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lease_break() argument
6152 struct cifs_ses *ses = tcon->ses; in SMB2_lease_break()
6160 struct TCP_Server_Info *server = cifs_pick_channel(tcon->ses); in SMB2_lease_break()
6163 rc = smb2_plain_req_init(SMB2_OPLOCK_BREAK, tcon, server, in SMB2_lease_break()
6168 if (smb3_encryption_required(tcon)) in SMB2_lease_break()
6194 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_lease_break()
6195 trace_smb3_lease_ack_err(le32_to_cpu(lease_state), tcon->tid, in SMB2_lease_break()
6199 trace_smb3_lease_ack_done(le32_to_cpu(lease_state), tcon->tid, in SMB2_lease_break()