Lines Matching defs:tcp_ses

2532 	struct TCP_Server_Info *tcp_ses = NULL;
2537 /* see if we already have a matching tcp_ses */
2538 tcp_ses = cifs_find_tcp_session(volume_info);
2539 if (tcp_ses)
2540 return tcp_ses;
2542 tcp_ses = kzalloc(sizeof(struct TCP_Server_Info), GFP_KERNEL);
2543 if (!tcp_ses) {
2548 tcp_ses->ops = volume_info->ops;
2549 tcp_ses->vals = volume_info->vals;
2550 cifs_set_net_ns(tcp_ses, get_net(current->nsproxy->net_ns));
2551 tcp_ses->hostname = extract_hostname(volume_info->UNC);
2552 if (IS_ERR(tcp_ses->hostname)) {
2553 rc = PTR_ERR(tcp_ses->hostname);
2557 tcp_ses->noblockcnt = volume_info->rootfs;
2558 tcp_ses->noblocksnd = volume_info->noblocksnd || volume_info->rootfs;
2559 tcp_ses->noautotune = volume_info->noautotune;
2560 tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay;
2561 tcp_ses->rdma = volume_info->rdma;
2562 tcp_ses->in_flight = 0;
2563 tcp_ses->max_in_flight = 0;
2564 tcp_ses->credits = 1;
2565 init_waitqueue_head(&tcp_ses->response_q);
2566 init_waitqueue_head(&tcp_ses->request_q);
2567 INIT_LIST_HEAD(&tcp_ses->pending_mid_q);
2568 mutex_init(&tcp_ses->srv_mutex);
2569 memcpy(tcp_ses->workstation_RFC1001_name,
2571 memcpy(tcp_ses->server_RFC1001_name,
2573 tcp_ses->session_estab = false;
2574 tcp_ses->sequence_number = 0;
2575 tcp_ses->reconnect_instance = 1;
2576 tcp_ses->lstrp = jiffies;
2577 tcp_ses->compress_algorithm = cpu_to_le16(volume_info->compression);
2578 spin_lock_init(&tcp_ses->req_lock);
2579 INIT_LIST_HEAD(&tcp_ses->tcp_ses_list);
2580 INIT_LIST_HEAD(&tcp_ses->smb_ses_list);
2581 INIT_DELAYED_WORK(&tcp_ses->echo, cifs_echo_request);
2582 INIT_DELAYED_WORK(&tcp_ses->reconnect, smb2_reconnect_server);
2583 mutex_init(&tcp_ses->reconnect_mutex);
2584 memcpy(&tcp_ses->srcaddr, &volume_info->srcaddr,
2585 sizeof(tcp_ses->srcaddr));
2586 memcpy(&tcp_ses->dstaddr, &volume_info->dstaddr,
2587 sizeof(tcp_ses->dstaddr));
2589 memcpy(tcp_ses->client_guid, volume_info->client_guid,
2592 generate_random_uuid(tcp_ses->client_guid);
2598 tcp_ses->tcpStatus = CifsNew;
2599 ++tcp_ses->srv_count;
2603 tcp_ses->echo_interval = volume_info->echo_interval * HZ;
2605 tcp_ses->echo_interval = SMB_ECHO_INTERVAL_DEFAULT * HZ;
2606 if (tcp_ses->rdma) {
2612 tcp_ses->smbd_conn = smbd_get_connection(
2613 tcp_ses, (struct sockaddr *)&volume_info->dstaddr);
2614 if (tcp_ses->smbd_conn) {
2623 rc = ip_connect(tcp_ses);
2634 tcp_ses->tsk = kthread_run(cifs_demultiplex_thread,
2635 tcp_ses, "cifsd");
2636 if (IS_ERR(tcp_ses->tsk)) {
2637 rc = PTR_ERR(tcp_ses->tsk);
2642 tcp_ses->min_offload = volume_info->min_offload;
2643 tcp_ses->tcpStatus = CifsNeedNegotiate;
2646 tcp_ses->max_credits = SMB2_MAX_CREDITS_AVAILABLE;
2648 tcp_ses->max_credits = volume_info->max_credits;
2650 tcp_ses->nr_targets = 1;
2651 tcp_ses->ignore_signature = volume_info->ignore_signature;
2654 list_add(&tcp_ses->tcp_ses_list, &cifs_tcp_ses_list);
2657 cifs_fscache_get_client_cookie(tcp_ses);
2660 queue_delayed_work(cifsiod_wq, &tcp_ses->echo, tcp_ses->echo_interval);
2662 return tcp_ses;
2665 cifs_crypto_secmech_release(tcp_ses);
2667 put_net(cifs_net_ns(tcp_ses));
2670 if (tcp_ses) {
2671 if (!IS_ERR(tcp_ses->hostname))
2672 kfree(tcp_ses->hostname);
2673 if (tcp_ses->ssocket)
2674 sock_release(tcp_ses->ssocket);
2675 kfree(tcp_ses);