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()
504 int smb3_validate_negotiate(const unsigned int xid, struct cifs_tcon *tcon) in smb3_validate_negotiate() argument
521 if (tcon->ses->server->sign == false) in smb3_validate_negotiate()
525 cpu_to_le32(tcon->ses->server->vals->req_capabilities); in smb3_validate_negotiate()
526 memcpy(vneg_inbuf.Guid, tcon->ses->server->client_guid, in smb3_validate_negotiate()
529 if (tcon->ses->sign) in smb3_validate_negotiate()
540 cpu_to_le16(tcon->ses->server->vals->protocol_id); in smb3_validate_negotiate()
542 rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, in smb3_validate_negotiate()
559 cpu_to_le16(tcon->ses->server->vals->protocol_id)) in smb3_validate_negotiate()
562 if (pneg_rsp->SecurityMode != cpu_to_le16(tcon->ses->server->sec_mode)) in smb3_validate_negotiate()
568 SMB2_LARGE_FILES) != tcon->ses->server->capabilities) in smb3_validate_negotiate()
887 static inline void cifs_stats_fail_inc(struct cifs_tcon *tcon, uint16_t code) in cifs_stats_fail_inc() argument
889 cifs_stats_inc(&tcon->stats.smb2_stats.smb2_com_failed[code]); in cifs_stats_fail_inc()
895 static inline void init_copy_chunk_defaults(struct cifs_tcon *tcon) in init_copy_chunk_defaults() argument
897 tcon->max_chunks = 256; in init_copy_chunk_defaults()
898 tcon->max_bytes_chunk = 1048576; in init_copy_chunk_defaults()
899 tcon->max_bytes_copy = 16777216; in init_copy_chunk_defaults()
904 struct cifs_tcon *tcon, const struct nls_table *cp) in SMB2_tcon() argument
922 if (tcon && tcon->bad_network_name) in SMB2_tcon()
925 if ((tcon && tcon->seal) && in SMB2_tcon()
942 rc = small_smb2_init(SMB2_TREE_CONNECT, tcon, (void **) &req); in SMB2_tcon()
948 if (tcon == NULL) { in SMB2_tcon()
972 if (tcon) { in SMB2_tcon()
973 cifs_stats_fail_inc(tcon, SMB2_TREE_CONNECT_HE); in SMB2_tcon()
974 tcon->need_reconnect = true; in SMB2_tcon()
979 if (tcon == NULL) { in SMB2_tcon()
987 tcon->ipc = true; in SMB2_tcon()
990 tcon->print = true; in SMB2_tcon()
998 tcon->share_flags = le32_to_cpu(rsp->ShareFlags); in SMB2_tcon()
999 tcon->capabilities = rsp->Capabilities; /* we keep caps little endian */ in SMB2_tcon()
1000 tcon->maximal_access = le32_to_cpu(rsp->MaximalAccess); in SMB2_tcon()
1001 tcon->tidStatus = CifsGood; in SMB2_tcon()
1002 tcon->need_reconnect = false; in SMB2_tcon()
1003 tcon->tid = rsp->hdr.TreeId; in SMB2_tcon()
1004 strlcpy(tcon->treeName, tree, sizeof(tcon->treeName)); in SMB2_tcon()
1007 ((tcon->share_flags & SHI1005_FLAGS_DFS) == 0)) in SMB2_tcon()
1009 init_copy_chunk_defaults(tcon); in SMB2_tcon()
1010 if (tcon->share_flags & SHI1005_FLAGS_ENCRYPT_DATA) in SMB2_tcon()
1012 if (tcon->ses->server->ops->validate_negotiate) in SMB2_tcon()
1013 rc = tcon->ses->server->ops->validate_negotiate(xid, tcon); in SMB2_tcon()
1022 if (tcon) in SMB2_tcon()
1023 tcon->bad_network_name = true; in SMB2_tcon()
1029 SMB2_tdis(const unsigned int xid, struct cifs_tcon *tcon) in SMB2_tdis() argument
1034 struct cifs_ses *ses = tcon->ses; in SMB2_tdis()
1043 if ((tcon->need_reconnect) || (tcon->ses->need_reconnect)) in SMB2_tdis()
1046 rc = small_smb2_init(SMB2_TREE_DISCONNECT, tcon, (void **) &req); in SMB2_tdis()
1052 cifs_stats_fail_inc(tcon, SMB2_TREE_DISCONNECT_HE); in SMB2_tdis()
1309 struct cifs_tcon *tcon = oparms->tcon; in SMB2_open() local
1310 struct cifs_ses *ses = tcon->ses; in SMB2_open()
1328 rc = small_smb2_init(SMB2_CREATE, tcon, (void **) &req); in SMB2_open()
1401 tcon->use_persistent); in SMB2_open()
1415 cifs_stats_fail_inc(tcon, SMB2_CREATE_HE); in SMB2_open()
1450 SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_ioctl() argument
1472 if (tcon) in SMB2_ioctl()
1473 ses = tcon->ses; in SMB2_ioctl()
1482 rc = small_smb2_init(SMB2_IOCTL, tcon, (void **) &req); in SMB2_ioctl()
1540 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
1545 cifs_stats_fail_inc(tcon, SMB2_IOCTL_HE); in SMB2_ioctl()
1592 SMB2_set_compression(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_compression() argument
1602 rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_compression()
1613 SMB2_close(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_close() argument
1619 struct cifs_ses *ses = tcon->ses; in SMB2_close()
1631 rc = small_smb2_init(SMB2_CLOSE, tcon, (void **) &req); in SMB2_close()
1646 cifs_stats_fail_inc(tcon, SMB2_CLOSE_HE); in SMB2_close()
1715 query_info(const unsigned int xid, struct cifs_tcon *tcon, in query_info() argument
1725 struct cifs_ses *ses = tcon->ses; in query_info()
1734 rc = small_smb2_init(SMB2_QUERY_INFO, tcon, (void **) &req); in query_info()
1755 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in query_info()
1769 SMB2_query_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_info() argument
1773 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_query_info()
1780 SMB2_get_srv_num(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_get_srv_num() argument
1783 return query_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_get_srv_num()
1843 SMB2_flush(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_flush() argument
1848 struct cifs_ses *ses = tcon->ses; in SMB2_flush()
1860 rc = small_smb2_init(SMB2_FLUSH, tcon, (void **) &req); in SMB2_flush()
1874 cifs_stats_fail_inc(tcon, SMB2_FLUSH_HE); in SMB2_flush()
1891 rc = small_smb2_init(SMB2_READ, io_parms->tcon, (void **) &req); in smb2_new_read_req()
1894 if (io_parms->tcon->ses->server == NULL) in smb2_new_read_req()
1942 struct cifs_tcon *tcon = tlink_tcon(rdata->cfile->tlink); in smb2_readv_callback() local
1943 struct TCP_Server_Info *server = tcon->ses->server; in smb2_readv_callback()
1971 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
1981 cifs_stats_bytes_read(tcon, rdata->got_bytes); in smb2_readv_callback()
1989 cifs_stats_fail_inc(tcon, SMB2_READ_HE); in smb2_readv_callback()
2012 io_parms.tcon = tlink_tcon(rdata->cfile->tlink); in smb2_async_readv()
2019 server = io_parms.tcon->ses->server; in smb2_async_readv()
2050 rc = cifs_call_async(io_parms.tcon->ses->server, &rqst, in smb2_async_readv()
2055 cifs_stats_fail_inc(io_parms.tcon, SMB2_READ_HE); in smb2_async_readv()
2075 rc = SendReceive2(xid, io_parms->tcon->ses, iov, 1, in SMB2_read()
2086 cifs_stats_fail_inc(io_parms->tcon, SMB2_READ_HE); in SMB2_read()
2121 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink); in smb2_writev_callback() local
2122 struct TCP_Server_Info *server = tcon->ses->server; in smb2_writev_callback()
2130 wdata->result = smb2_check_receive(mid, tcon->ses->server, 0); in smb2_writev_callback()
2159 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_writev_callback()
2165 add_credits(tcon->ses->server, credits_received, 0); in smb2_writev_callback()
2175 struct cifs_tcon *tcon = tlink_tcon(wdata->cfile->tlink); in smb2_async_writev() local
2176 struct TCP_Server_Info *server = tcon->ses->server; in smb2_async_writev()
2180 rc = small_smb2_init(SMB2_WRITE, tcon, (void **) &req); in smb2_async_writev()
2241 cifs_stats_fail_inc(tcon, SMB2_WRITE_HE); in smb2_async_writev()
2268 rc = small_smb2_init(SMB2_WRITE, io_parms->tcon, (void **) &req); in SMB2_write()
2272 if (io_parms->tcon->ses->server == NULL) in SMB2_write()
2296 rc = SendReceive2(xid, io_parms->tcon->ses, iov, n_vec + 1, in SMB2_write()
2301 cifs_stats_fail_inc(io_parms->tcon, SMB2_WRITE_HE); in SMB2_write()
2354 SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_query_directory() argument
2366 struct cifs_ses *ses = tcon->ses; in SMB2_query_directory()
2377 rc = small_smb2_init(SMB2_QUERY_DIRECTORY, tcon, (void **) &req); in SMB2_query_directory()
2433 cifs_stats_fail_inc(tcon, SMB2_QUERY_DIRECTORY_HE); in SMB2_query_directory()
2478 send_set_info(const unsigned int xid, struct cifs_tcon *tcon, in send_set_info() argument
2489 struct cifs_ses *ses = tcon->ses; in send_set_info()
2503 rc = small_smb2_init(SMB2_SET_INFO, tcon, (void **) &req); in send_set_info()
2540 cifs_stats_fail_inc(tcon, SMB2_SET_INFO_HE); in send_set_info()
2548 SMB2_rename(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_rename() argument
2572 rc = send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_rename()
2580 SMB2_rmdir(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_rmdir() argument
2590 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_rmdir()
2596 SMB2_set_hardlink(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_hardlink() argument
2620 rc = send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_hardlink()
2627 SMB2_set_eof(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, in SMB2_set_eof() argument
2640 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_eof()
2643 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_eof()
2648 SMB2_set_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_set_info() argument
2653 return send_set_info(xid, tcon, persistent_fid, volatile_fid, in SMB2_set_info()
2659 SMB2_oplock_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_oplock_break() argument
2667 rc = small_smb2_init(SMB2_OPLOCK_BREAK, tcon, (void **) &req); in SMB2_oplock_break()
2677 rc = SendReceiveNoRsp(xid, tcon->ses, (char *) req, CIFS_OBREAK_OP); in SMB2_oplock_break()
2681 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_oplock_break()
2701 build_qfs_info_req(struct kvec *iov, struct cifs_tcon *tcon, int level, in build_qfs_info_req() argument
2709 if ((tcon->ses == NULL) || (tcon->ses->server == NULL)) in build_qfs_info_req()
2712 rc = small_smb2_init(SMB2_QUERY_INFO, tcon, (void **) &req); in build_qfs_info_req()
2733 SMB2_QFS_info(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_QFS_info() argument
2740 struct cifs_ses *ses = tcon->ses; in SMB2_QFS_info()
2743 rc = build_qfs_info_req(&iov, tcon, FS_FULL_SIZE_INFORMATION, in SMB2_QFS_info()
2751 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB2_QFS_info()
2770 SMB2_QFS_attr(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_QFS_attr() argument
2777 struct cifs_ses *ses = tcon->ses; in SMB2_QFS_attr()
2794 rc = build_qfs_info_req(&iov, tcon, level, max_len, in SMB2_QFS_attr()
2801 cifs_stats_fail_inc(tcon, SMB2_QUERY_INFO_HE); in SMB2_QFS_attr()
2813 memcpy(&tcon->fsAttrInfo, 4 /* RFC1001 len */ + offset in SMB2_QFS_attr()
2817 memcpy(&tcon->fsDevInfo, 4 /* RFC1001 len */ + offset in SMB2_QFS_attr()
2822 tcon->ss_flags = le32_to_cpu(ss_info->Flags); in SMB2_QFS_attr()
2823 tcon->perf_sector_size = in SMB2_QFS_attr()
2833 smb2_lockv(const unsigned int xid, struct cifs_tcon *tcon, in smb2_lockv() argument
2845 rc = small_smb2_init(SMB2_LOCK, tcon, (void **) &req); in smb2_lockv()
2864 cifs_stats_inc(&tcon->stats.cifs_stats.num_locks); in smb2_lockv()
2865 rc = SendReceive2(xid, tcon->ses, iov, 2, &resp_buf_type, CIFS_NO_RESP); in smb2_lockv()
2868 cifs_stats_fail_inc(tcon, SMB2_LOCK_HE); in smb2_lockv()
2875 SMB2_lock(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lock() argument
2888 return smb2_lockv(xid, tcon, persist_fid, volatile_fid, pid, 1, &lock); in SMB2_lock()
2892 SMB2_lease_break(const unsigned int xid, struct cifs_tcon *tcon, in SMB2_lease_break() argument
2899 rc = small_smb2_init(SMB2_OPLOCK_BREAK, tcon, (void **) &req); in SMB2_lease_break()
2911 rc = SendReceiveNoRsp(xid, tcon->ses, (char *) req, CIFS_OBREAK_OP); in SMB2_lease_break()
2915 cifs_stats_fail_inc(tcon, SMB2_OPLOCK_BREAK_HE); in SMB2_lease_break()