Lines Matching refs:tcon

83 		  const struct cifs_tcon *tcon)  in smb2_hdr_assemble()  argument
109 if (!tcon) in smb2_hdr_assemble()
114 if ((tcon->ses) && (tcon->ses->server) && in smb2_hdr_assemble()
115 (tcon->ses->server->capabilities & SMB2_GLOBAL_CAP_LARGE_MTU)) in smb2_hdr_assemble()
119 hdr->TreeId = tcon->tid; in smb2_hdr_assemble()
121 if (tcon->ses) in smb2_hdr_assemble()
122 hdr->SessionId = tcon->ses->Suid; in smb2_hdr_assemble()
137 if (tcon->ses && tcon->ses->server && tcon->ses->server->sign) in smb2_hdr_assemble()
145 smb2_reconnect(__le16 smb2_command, struct cifs_tcon *tcon) in smb2_reconnect() argument
157 if (tcon == NULL) in smb2_reconnect()
163 if (tcon->tidStatus == CifsExiting) { in smb2_reconnect()
177 if ((!tcon->ses) || (tcon->ses->status == CifsExiting) || in smb2_reconnect()
178 (!tcon->ses->server)) in smb2_reconnect()
181 ses = tcon->ses; in smb2_reconnect()
216 if (!tcon->retry) { in smb2_reconnect()
222 if (!tcon->ses->need_reconnect && !tcon->need_reconnect) in smb2_reconnect()
231 mutex_lock(&tcon->ses->session_mutex); in smb2_reconnect()
232 rc = cifs_negotiate_protocol(0, tcon->ses); in smb2_reconnect()
233 if (!rc && tcon->ses->need_reconnect) in smb2_reconnect()
234 rc = cifs_setup_session(0, tcon->ses, nls_codepage); in smb2_reconnect()
236 if (rc || !tcon->need_reconnect) { in smb2_reconnect()
237 mutex_unlock(&tcon->ses->session_mutex); in smb2_reconnect()
241 cifs_mark_open_files_invalid(tcon); in smb2_reconnect()
242 rc = SMB2_tcon(0, tcon->ses, tcon->treeName, tcon, nls_codepage); in smb2_reconnect()
243 mutex_unlock(&tcon->ses->session_mutex); in smb2_reconnect()
279 small_smb2_init(__le16 smb2_command, struct cifs_tcon *tcon, in small_smb2_init() argument
284 rc = smb2_reconnect(smb2_command, tcon); in small_smb2_init()
295 smb2_hdr_assemble((struct smb2_hdr *) *request_buf, smb2_command, tcon); in small_smb2_init()
297 if (tcon != NULL) { in small_smb2_init()
300 cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_sent[com_code]); in small_smb2_init()
302 cifs_stats_inc(&tcon->num_smbs_sent); in small_smb2_init()
445 int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon) in smb3_validate_negotiate() argument
462 if (tcon->ses->server->sign == false) in smb3_validate_negotiate()
466 cpu_to_le32(tcon->ses->server->vals->req_capabilities); in smb3_validate_negotiate()
467 memcpy(vneg_inbuf.Guid, tcon->ses->server->client_guid, in smb3_validate_negotiate()
470 if (tcon->ses->sign) in smb3_validate_negotiate()
481 cpu_to_le16(tcon->ses->server->vals->protocol_id); in smb3_validate_negotiate()
483 rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, in smb3_validate_negotiate()
500 cpu_to_le16(tcon->ses->server->vals->protocol_id)) in smb3_validate_negotiate()
503 if (pneg_rsp->SecurityMode != cpu_to_le16(tcon->ses->server->sec_mode)) in smb3_validate_negotiate()
509 SMB2_LARGE_FILES) != tcon->ses->server->capabilities) in smb3_validate_negotiate()
828 static inline void cifs_stats_fail_inc(struct cifs_tcon *tcon, uint16_t code) in cifs_stats_fail_inc() argument
830 cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_failed[code]); in cifs_stats_fail_inc()
836 static inline void init_copy_chunk_defaults(struct cifs_tcon *tcon) in init_copy_chunk_defaults() argument
838 tcon->max_chunks = 256; in init_copy_chunk_defaults()
839 tcon->max_bytes_chunk = 1048576; in init_copy_chunk_defaults()
840 tcon->max_bytes_copy = 16777216; in init_copy_chunk_defaults()
845 struct cifs_tcon *tcon, const struct nls_table *cp) in SMB2_tcon() argument
863 if (tcon && tcon->bad_network_name) in SMB2_tcon()
877 rc = small_smb2_init(SMB2_TREE_CONNECT, tcon, (void **) &req); in SMB2_tcon()
883 if (tcon == NULL) { in SMB2_tcon()
907 if (tcon) { in SMB2_tcon()
908 cifs_stats_fail_inc(tcon, SMB2_TREE_CONNECT_HE); in SMB2_tcon()
909 tcon->need_reconnect = true; in SMB2_tcon()
914 if (tcon == NULL) { in SMB2_tcon()
922 tcon->ipc = true; in SMB2_tcon()
925 tcon->print = true; in SMB2_tcon()
933 tcon->share_flags = le32_to_cpu(rsp->ShareFlags); in SMB2_tcon()
934 tcon->capabilities = rsp->Capabilities; /* we keep caps little endian */ in SMB2_tcon()
935 tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess); in SMB2_tcon()
936 tcon->tidStatus = CifsGood; in SMB2_tcon()
937 tcon->need_reconnect = false; in SMB2_tcon()
938 tcon->tid = rsp->hdr.TreeId; in SMB2_tcon()
939 strlcpy(tcon->treeName, tree, sizeof(tcon->treeName)); in SMB2_tcon()
942 ((tcon->share_flags & SHI1005_FLAGS_DFS) == 0)) in SMB2_tcon()
944 init_copy_chunk_defaults(tcon); in SMB2_tcon()
945 if (tcon->ses->server->ops->validate_negotiate) in SMB2_tcon()
946 rc = tcon->ses->server->ops->validate_negotiate(xid, tcon); in SMB2_tcon()
955 if (tcon) in SMB2_tcon()
956 tcon->bad_network_name = true; in SMB2_tcon()
962 SMB2_tdis(const unsigned int xid, struct cifs_tcon *tcon) in SMB2_tdis() argument
967 struct cifs_ses *ses = tcon->ses; in SMB2_tdis()
976 if ((tcon->need_reconnect) || (tcon->ses->need_reconnect)) in SMB2_tdis()
979 rc = small_smb2_init(SMB2_TREE_DISCONNECT, tcon, (void **) &req); in SMB2_tdis()
985 cifs_stats_fail_inc(tcon, SMB2_TREE_DISCONNECT_HE); in SMB2_tdis()
1125 struct cifs_tcon *tcon = oparms->tcon; in SMB2_open() local
1126 struct cifs_ses *ses = tcon->ses; in SMB2_open()
1144 rc = small_smb2_init(SMB2_CREATE, tcon, (void **) &req); in SMB2_open()
1229 cifs_stats_fail_inc(tcon, SMB2_CREATE_HE); in SMB2_open()
1264 SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_ioctl() argument
1286 if (tcon) in SMB2_ioctl()
1287 ses = tcon->ses; in SMB2_ioctl()
1296 rc = small_smb2_init(SMB2_IOCTL, tcon, (void **) &req); in SMB2_ioctl()
1354 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
1359 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
1406 SMB2_set_compression(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_compression() argument
1416 rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_compression()
1427 SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_close() argument
1433 struct cifs_ses *ses = tcon->ses; in SMB2_close()
1445 rc = small_smb2_init(SMB2_CLOSE, tcon, (void **) &req); in SMB2_close()
1460 cifs_stats_fail_inc(tcon, SMB2_CLOSE_HE); in SMB2_close()
1529 query_info(const unsigned int xid, struct cifs_tcon *tcon, in query_info() argument
1539 struct cifs_ses *ses = tcon->ses; in query_info()
1548 rc = small_smb2_init(SMB2_QUERY_INFO, tcon, (void **) &req); in query_info()
1569 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in query_info()
1583 SMB2_query_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_info() argument
1587 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_query_info()
1594 SMB2_get_srv_num(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_get_srv_num() argument
1597 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_get_srv_num()
1655 SMB2_flush(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_flush() argument
1660 struct cifs_ses *ses = tcon->ses; in SMB2_flush()
1672 rc = small_smb2_init(SMB2_FLUSH, tcon, (void **) &req); in SMB2_flush()
1686 cifs_stats_fail_inc(tcon, SMB2_FLUSH_HE); in SMB2_flush()
1703 rc = small_smb2_init(SMB2_READ, io_parms->tcon, (void **) &req); in smb2_new_read_req()
1706 if (io_parms->tcon->ses->server == NULL) in smb2_new_read_req()
1754 struct cifs_tcon *tcon = tlink_tcon(rdata->cfile->tlink); in smb2_readv_callback() local
1755 struct TCP_Server_Info *server = tcon->ses->server; in smb2_readv_callback()
1783 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
1793 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
1801 cifs_stats_fail_inc(tcon, SMB2_READ_HE); in smb2_readv_callback()
1822 io_parms.tcon = tlink_tcon(rdata->cfile->tlink); in smb2_async_readv()
1829 server = io_parms.tcon->ses->server; in smb2_async_readv()
1860 rc = cifs_call_async(io_parms.tcon->ses->server, &rqst, in smb2_async_readv()
1865 cifs_stats_fail_inc(io_parms.tcon, SMB2_READ_HE); in smb2_async_readv()
1885 rc = SendReceive2(xid, io_parms->tcon->ses, iov, 1, in SMB2_read()
1896 cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE); in SMB2_read()
1931 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink); in smb2_writev_callback() local
1939 wdata->result = smb2_check_receive(mid, tcon->ses->server, 0); in smb2_writev_callback()
1968 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_writev_callback()
1972 add_credits(tcon->ses->server, credits_received, 0); in smb2_writev_callback()
1982 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink); in smb2_async_writev() local
1983 struct TCP_Server_Info *server = tcon->ses->server; in smb2_async_writev()
1987 rc = small_smb2_init(SMB2_WRITE, tcon, (void **) &req); in smb2_async_writev()
2048 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_async_writev()
2075 rc = small_smb2_init(SMB2_WRITE, io_parms->tcon, (void **) &req); in SMB2_write()
2079 if (io_parms->tcon->ses->server == NULL) in SMB2_write()
2103 rc = SendReceive2(xid, io_parms->tcon->ses, iov, n_vec + 1, in SMB2_write()
2108 cifs_stats_fail_inc(io_parms->tcon, SMB2_WRITE_HE); in SMB2_write()
2161 SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_directory() argument
2173 struct cifs_ses *ses = tcon->ses; in SMB2_query_directory()
2184 rc = small_smb2_init(SMB2_QUERY_DIRECTORY, tcon, (void **) &req); in SMB2_query_directory()
2240 cifs_stats_fail_inc(tcon, SMB2_QUERY_DIRECTORY_HE); in SMB2_query_directory()
2285 send_set_info(const unsigned int xid, struct cifs_tcon *tcon, in send_set_info() argument
2296 struct cifs_ses *ses = tcon->ses; in send_set_info()
2310 rc = small_smb2_init(SMB2_SET_INFO, tcon, (void **) &req); in send_set_info()
2347 cifs_stats_fail_inc(tcon, SMB2_SET_INFO_HE); in send_set_info()
2355 SMB2_rename(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_rename() argument
2379 rc = send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_rename()
2387 SMB2_rmdir(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_rmdir() argument
2397 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_rmdir()
2403 SMB2_set_hardlink(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_hardlink() argument
2427 rc = send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_hardlink()
2434 SMB2_set_eof(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_set_eof() argument
2447 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_eof()
2450 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_eof()
2455 SMB2_set_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_info() argument
2460 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_info()
2466 SMB2_oplock_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_oplock_break() argument
2474 rc = small_smb2_init(SMB2_OPLOCK_BREAK, tcon, (void **) &req); in SMB2_oplock_break()
2484 rc = SendReceiveNoRsp(xid, tcon->ses, (char *) req, CIFS_OBREAK_OP); in SMB2_oplock_break()
2488 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_oplock_break()
2508 build_qfs_info_req(struct kvec *iov, struct cifs_tcon *tcon, int level, in build_qfs_info_req() argument
2516 if ((tcon->ses == NULL) || (tcon->ses->server == NULL)) in build_qfs_info_req()
2519 rc = small_smb2_init(SMB2_QUERY_INFO, tcon, (void **) &req); in build_qfs_info_req()
2540 SMB2_QFS_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_QFS_info() argument
2547 struct cifs_ses *ses = tcon->ses; in SMB2_QFS_info()
2550 rc = build_qfs_info_req(&iov, tcon, FS_FULL_SIZE_INFORMATION, in SMB2_QFS_info()
2558 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB2_QFS_info()
2577 SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_QFS_attr() argument
2584 struct cifs_ses *ses = tcon->ses; in SMB2_QFS_attr()
2601 rc = build_qfs_info_req(&iov, tcon, level, max_len, in SMB2_QFS_attr()
2608 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB2_QFS_attr()
2620 memcpy(&tcon->fsAttrInfo, 4 /* RFC1001 len */ + offset in SMB2_QFS_attr()
2624 memcpy(&tcon->fsDevInfo, 4 /* RFC1001 len */ + offset in SMB2_QFS_attr()
2629 tcon->ss_flags = le32_to_cpu(ss_info->Flags); in SMB2_QFS_attr()
2630 tcon->perf_sector_size = in SMB2_QFS_attr()
2640 smb2_lockv(const unsigned int xid, struct cifs_tcon *tcon, in smb2_lockv() argument
2652 rc = small_smb2_init(SMB2_LOCK, tcon, (void **) &req); in smb2_lockv()
2671 cifs_stats_inc(&tcon->stats.cifs_stats.num_locks); in smb2_lockv()
2672 rc = SendReceive2(xid, tcon->ses, iov, 2, &resp_buf_type, CIFS_NO_RESP); in smb2_lockv()
2675 cifs_stats_fail_inc(tcon, SMB2_LOCK_HE); in smb2_lockv()
2682 SMB2_lock(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lock() argument
2695 return smb2_lockv(xid, tcon, persist_fid, volatile_fid, pid, 1, &lock); in SMB2_lock()
2699 SMB2_lease_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lease_break() argument
2706 rc = small_smb2_init(SMB2_OPLOCK_BREAK, tcon, (void **) &req); in SMB2_lease_break()
2718 rc = SendReceiveNoRsp(xid, tcon->ses, (char *) req, CIFS_OBREAK_OP); in SMB2_lease_break()
2722 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_lease_break()