Lines Matching refs:tcp_ses
2151 struct TCP_Server_Info *tcp_ses = NULL; in cifs_get_tcp_session() local
2157 tcp_ses = cifs_find_tcp_session(volume_info); in cifs_get_tcp_session()
2158 if (tcp_ses) in cifs_get_tcp_session()
2159 return tcp_ses; in cifs_get_tcp_session()
2161 tcp_ses = kzalloc(sizeof(struct TCP_Server_Info), GFP_KERNEL); in cifs_get_tcp_session()
2162 if (!tcp_ses) { in cifs_get_tcp_session()
2167 tcp_ses->ops = volume_info->ops; in cifs_get_tcp_session()
2168 tcp_ses->vals = volume_info->vals; in cifs_get_tcp_session()
2169 cifs_set_net_ns(tcp_ses, get_net(current->nsproxy->net_ns)); in cifs_get_tcp_session()
2170 tcp_ses->hostname = extract_hostname(volume_info->UNC); in cifs_get_tcp_session()
2171 if (IS_ERR(tcp_ses->hostname)) { in cifs_get_tcp_session()
2172 rc = PTR_ERR(tcp_ses->hostname); in cifs_get_tcp_session()
2176 tcp_ses->noblocksnd = volume_info->noblocksnd; in cifs_get_tcp_session()
2177 tcp_ses->noautotune = volume_info->noautotune; in cifs_get_tcp_session()
2178 tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay; in cifs_get_tcp_session()
2179 tcp_ses->in_flight = 0; in cifs_get_tcp_session()
2180 tcp_ses->credits = 1; in cifs_get_tcp_session()
2181 init_waitqueue_head(&tcp_ses->response_q); in cifs_get_tcp_session()
2182 init_waitqueue_head(&tcp_ses->request_q); in cifs_get_tcp_session()
2183 INIT_LIST_HEAD(&tcp_ses->pending_mid_q); in cifs_get_tcp_session()
2184 mutex_init(&tcp_ses->srv_mutex); in cifs_get_tcp_session()
2185 memcpy(tcp_ses->workstation_RFC1001_name, in cifs_get_tcp_session()
2187 memcpy(tcp_ses->server_RFC1001_name, in cifs_get_tcp_session()
2189 tcp_ses->session_estab = false; in cifs_get_tcp_session()
2190 tcp_ses->sequence_number = 0; in cifs_get_tcp_session()
2191 tcp_ses->lstrp = jiffies; in cifs_get_tcp_session()
2192 spin_lock_init(&tcp_ses->req_lock); in cifs_get_tcp_session()
2193 INIT_LIST_HEAD(&tcp_ses->tcp_ses_list); in cifs_get_tcp_session()
2194 INIT_LIST_HEAD(&tcp_ses->smb_ses_list); in cifs_get_tcp_session()
2195 INIT_DELAYED_WORK(&tcp_ses->echo, cifs_echo_request); in cifs_get_tcp_session()
2196 memcpy(&tcp_ses->srcaddr, &volume_info->srcaddr, in cifs_get_tcp_session()
2197 sizeof(tcp_ses->srcaddr)); in cifs_get_tcp_session()
2198 memcpy(&tcp_ses->dstaddr, &volume_info->dstaddr, in cifs_get_tcp_session()
2199 sizeof(tcp_ses->dstaddr)); in cifs_get_tcp_session()
2201 get_random_bytes(tcp_ses->client_guid, SMB2_CLIENT_GUID_SIZE); in cifs_get_tcp_session()
2208 tcp_ses->tcpStatus = CifsNew; in cifs_get_tcp_session()
2209 ++tcp_ses->srv_count; in cifs_get_tcp_session()
2211 rc = ip_connect(tcp_ses); in cifs_get_tcp_session()
2222 tcp_ses->tsk = kthread_run(cifs_demultiplex_thread, in cifs_get_tcp_session()
2223 tcp_ses, "cifsd"); in cifs_get_tcp_session()
2224 if (IS_ERR(tcp_ses->tsk)) { in cifs_get_tcp_session()
2225 rc = PTR_ERR(tcp_ses->tsk); in cifs_get_tcp_session()
2230 tcp_ses->tcpStatus = CifsNeedNegotiate; in cifs_get_tcp_session()
2234 list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list); in cifs_get_tcp_session()
2237 cifs_fscache_get_client_cookie(tcp_ses); in cifs_get_tcp_session()
2240 queue_delayed_work(cifsiod_wq, &tcp_ses->echo, SMB_ECHO_INTERVAL); in cifs_get_tcp_session()
2242 return tcp_ses; in cifs_get_tcp_session()
2245 cifs_crypto_shash_release(tcp_ses); in cifs_get_tcp_session()
2247 put_net(cifs_net_ns(tcp_ses)); in cifs_get_tcp_session()
2250 if (tcp_ses) { in cifs_get_tcp_session()
2251 if (!IS_ERR(tcp_ses->hostname)) in cifs_get_tcp_session()
2252 kfree(tcp_ses->hostname); in cifs_get_tcp_session()
2253 if (tcp_ses->ssocket) in cifs_get_tcp_session()
2254 sock_release(tcp_ses->ssocket); in cifs_get_tcp_session()
2255 kfree(tcp_ses); in cifs_get_tcp_session()