Lines Matching refs:rxnet
108 struct rxrpc_net *rxnet = conn->params.local->rxnet; in rxrpc_get_client_connection_id() local
124 conn->proto.epoch = rxnet->epoch; in rxrpc_get_client_connection_id()
176 struct rxrpc_net *rxnet = cp->local->rxnet; in rxrpc_alloc_client_connection() local
210 atomic_inc(&rxnet->nr_conns); in rxrpc_alloc_client_connection()
211 write_lock(&rxnet->conn_lock); in rxrpc_alloc_client_connection()
212 list_add_tail(&conn->proc_link, &rxnet->conn_proc_list); in rxrpc_alloc_client_connection()
213 write_unlock(&rxnet->conn_lock); in rxrpc_alloc_client_connection()
241 struct rxrpc_net *rxnet = conn->params.local->rxnet; in rxrpc_may_reuse_conn() local
247 if (conn->proto.epoch != rxnet->epoch) in rxrpc_may_reuse_conn()
451 static void rxrpc_activate_conn(struct rxrpc_net *rxnet, in rxrpc_activate_conn() argument
461 rxnet->nr_active_client_conns++; in rxrpc_activate_conn()
462 list_move_tail(&conn->cache_link, &rxnet->active_client_conns); in rxrpc_activate_conn()
477 static void rxrpc_animate_client_conn(struct rxrpc_net *rxnet, in rxrpc_animate_client_conn() argument
488 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_animate_client_conn()
490 nr_conns = rxnet->nr_client_conns; in rxrpc_animate_client_conn()
493 rxnet->nr_client_conns = nr_conns + 1; in rxrpc_animate_client_conn()
514 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_animate_client_conn()
521 rxrpc_activate_conn(rxnet, conn); in rxrpc_animate_client_conn()
528 list_move_tail(&conn->cache_link, &rxnet->waiting_client_conns); in rxrpc_animate_client_conn()
693 struct rxrpc_net *rxnet = cp->local->rxnet; in rxrpc_connect_call() local
698 rxrpc_discard_expired_client_conns(&rxnet->client_conn_reaper); in rxrpc_connect_call()
699 rxrpc_cull_active_client_conns(rxnet); in rxrpc_connect_call()
705 rxrpc_animate_client_conn(rxnet, call->conn); in rxrpc_connect_call()
766 static void rxrpc_set_client_reap_timer(struct rxrpc_net *rxnet) in rxrpc_set_client_reap_timer() argument
771 if (rxnet->live) in rxrpc_set_client_reap_timer()
772 timer_reduce(&rxnet->client_conn_reap_timer, reap_at); in rxrpc_set_client_reap_timer()
783 struct rxrpc_net *rxnet = conn->params.local->rxnet; in rxrpc_disconnect_client_call() local
805 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
856 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
872 rxnet->nr_active_client_conns--; in rxrpc_disconnect_client_call()
898 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
913 list_move_tail(&conn->cache_link, &rxnet->idle_client_conns); in rxrpc_disconnect_client_call()
914 if (rxnet->idle_client_conns.next == &conn->cache_link && in rxrpc_disconnect_client_call()
915 !rxnet->kill_all_client_conns) in rxrpc_disconnect_client_call()
916 rxrpc_set_client_reap_timer(rxnet); in rxrpc_disconnect_client_call()
933 struct rxrpc_net *rxnet = local->rxnet; in rxrpc_put_one_client_conn() local
952 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_put_one_client_conn()
953 nr_conns = --rxnet->nr_client_conns; in rxrpc_put_one_client_conn()
956 !list_empty(&rxnet->waiting_client_conns)) { in rxrpc_put_one_client_conn()
957 next = list_entry(rxnet->waiting_client_conns.next, in rxrpc_put_one_client_conn()
960 rxrpc_activate_conn(rxnet, next); in rxrpc_put_one_client_conn()
963 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_put_one_client_conn()
998 static void rxrpc_cull_active_client_conns(struct rxrpc_net *rxnet) in rxrpc_cull_active_client_conns() argument
1001 unsigned int nr_conns = rxnet->nr_client_conns; in rxrpc_cull_active_client_conns()
1013 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_cull_active_client_conns()
1014 nr_active = rxnet->nr_active_client_conns; in rxrpc_cull_active_client_conns()
1017 ASSERT(!list_empty(&rxnet->active_client_conns)); in rxrpc_cull_active_client_conns()
1018 conn = list_entry(rxnet->active_client_conns.next, in rxrpc_cull_active_client_conns()
1031 &rxnet->waiting_client_conns); in rxrpc_cull_active_client_conns()
1037 rxnet->nr_active_client_conns = nr_active; in rxrpc_cull_active_client_conns()
1038 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_cull_active_client_conns()
1053 struct rxrpc_net *rxnet = in rxrpc_discard_expired_client_conns() local
1060 if (list_empty(&rxnet->idle_client_conns)) { in rxrpc_discard_expired_client_conns()
1066 if (!spin_trylock(&rxnet->client_conn_discard_lock)) { in rxrpc_discard_expired_client_conns()
1074 nr_conns = rxnet->nr_client_conns; in rxrpc_discard_expired_client_conns()
1077 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1079 if (list_empty(&rxnet->idle_client_conns)) in rxrpc_discard_expired_client_conns()
1082 conn = list_entry(rxnet->idle_client_conns.next, in rxrpc_discard_expired_client_conns()
1086 if (!rxnet->kill_all_client_conns) { in rxrpc_discard_expired_client_conns()
1111 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1130 if (!rxnet->kill_all_client_conns) in rxrpc_discard_expired_client_conns()
1131 timer_reduce(&rxnet->client_conn_reap_timer, in rxrpc_discard_expired_client_conns()
1135 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1136 spin_unlock(&rxnet->client_conn_discard_lock); in rxrpc_discard_expired_client_conns()
1144 void rxrpc_destroy_all_client_connections(struct rxrpc_net *rxnet) in rxrpc_destroy_all_client_connections() argument
1148 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_destroy_all_client_connections()
1149 rxnet->kill_all_client_conns = true; in rxrpc_destroy_all_client_connections()
1150 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_destroy_all_client_connections()
1152 del_timer_sync(&rxnet->client_conn_reap_timer); in rxrpc_destroy_all_client_connections()
1154 if (!rxrpc_queue_work(&rxnet->client_conn_reaper)) in rxrpc_destroy_all_client_connections()