Lines Matching refs:rxnet
103 struct rxrpc_net *rxnet = conn->params.local->rxnet; in rxrpc_get_client_connection_id() local
119 conn->proto.epoch = rxnet->epoch; in rxrpc_get_client_connection_id()
171 struct rxrpc_net *rxnet = cp->local->rxnet; in rxrpc_alloc_client_connection() local
205 atomic_inc(&rxnet->nr_conns); in rxrpc_alloc_client_connection()
206 write_lock(&rxnet->conn_lock); in rxrpc_alloc_client_connection()
207 list_add_tail(&conn->proc_link, &rxnet->conn_proc_list); in rxrpc_alloc_client_connection()
208 write_unlock(&rxnet->conn_lock); in rxrpc_alloc_client_connection()
237 struct rxrpc_net *rxnet = conn->params.local->rxnet; in rxrpc_may_reuse_conn() local
243 if (conn->proto.epoch != rxnet->epoch) in rxrpc_may_reuse_conn()
450 static void rxrpc_activate_conn(struct rxrpc_net *rxnet, in rxrpc_activate_conn() argument
460 rxnet->nr_active_client_conns++; in rxrpc_activate_conn()
461 list_move_tail(&conn->cache_link, &rxnet->active_client_conns); in rxrpc_activate_conn()
476 static void rxrpc_animate_client_conn(struct rxrpc_net *rxnet, in rxrpc_animate_client_conn() argument
487 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_animate_client_conn()
489 nr_conns = rxnet->nr_client_conns; in rxrpc_animate_client_conn()
492 rxnet->nr_client_conns = nr_conns + 1; in rxrpc_animate_client_conn()
513 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_animate_client_conn()
520 rxrpc_activate_conn(rxnet, conn); in rxrpc_animate_client_conn()
527 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()
767 static void rxrpc_set_client_reap_timer(struct rxrpc_net *rxnet) in rxrpc_set_client_reap_timer() argument
772 if (rxnet->live) in rxrpc_set_client_reap_timer()
773 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
812 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
866 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
882 rxnet->nr_active_client_conns--; in rxrpc_disconnect_client_call()
908 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_disconnect_client_call()
923 list_move_tail(&conn->cache_link, &rxnet->idle_client_conns); in rxrpc_disconnect_client_call()
924 if (rxnet->idle_client_conns.next == &conn->cache_link && in rxrpc_disconnect_client_call()
925 !rxnet->kill_all_client_conns) in rxrpc_disconnect_client_call()
926 rxrpc_set_client_reap_timer(rxnet); in rxrpc_disconnect_client_call()
943 struct rxrpc_net *rxnet = local->rxnet; in rxrpc_put_one_client_conn() local
962 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_put_one_client_conn()
963 nr_conns = --rxnet->nr_client_conns; in rxrpc_put_one_client_conn()
966 !list_empty(&rxnet->waiting_client_conns)) { in rxrpc_put_one_client_conn()
967 next = list_entry(rxnet->waiting_client_conns.next, in rxrpc_put_one_client_conn()
970 rxrpc_activate_conn(rxnet, next); in rxrpc_put_one_client_conn()
973 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_put_one_client_conn()
1009 static void rxrpc_cull_active_client_conns(struct rxrpc_net *rxnet) in rxrpc_cull_active_client_conns() argument
1012 unsigned int nr_conns = rxnet->nr_client_conns; in rxrpc_cull_active_client_conns()
1024 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_cull_active_client_conns()
1025 nr_active = rxnet->nr_active_client_conns; in rxrpc_cull_active_client_conns()
1028 ASSERT(!list_empty(&rxnet->active_client_conns)); in rxrpc_cull_active_client_conns()
1029 conn = list_entry(rxnet->active_client_conns.next, in rxrpc_cull_active_client_conns()
1042 &rxnet->waiting_client_conns); in rxrpc_cull_active_client_conns()
1048 rxnet->nr_active_client_conns = nr_active; in rxrpc_cull_active_client_conns()
1049 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_cull_active_client_conns()
1064 struct rxrpc_net *rxnet = in rxrpc_discard_expired_client_conns() local
1071 if (list_empty(&rxnet->idle_client_conns)) { in rxrpc_discard_expired_client_conns()
1077 if (!spin_trylock(&rxnet->client_conn_discard_lock)) { in rxrpc_discard_expired_client_conns()
1085 nr_conns = rxnet->nr_client_conns; in rxrpc_discard_expired_client_conns()
1088 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1090 if (list_empty(&rxnet->idle_client_conns)) in rxrpc_discard_expired_client_conns()
1093 conn = list_entry(rxnet->idle_client_conns.next, in rxrpc_discard_expired_client_conns()
1097 if (!rxnet->kill_all_client_conns) { in rxrpc_discard_expired_client_conns()
1122 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1141 if (!rxnet->kill_all_client_conns) in rxrpc_discard_expired_client_conns()
1142 timer_reduce(&rxnet->client_conn_reap_timer, in rxrpc_discard_expired_client_conns()
1146 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_discard_expired_client_conns()
1147 spin_unlock(&rxnet->client_conn_discard_lock); in rxrpc_discard_expired_client_conns()
1155 void rxrpc_destroy_all_client_connections(struct rxrpc_net *rxnet) in rxrpc_destroy_all_client_connections() argument
1159 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_destroy_all_client_connections()
1160 rxnet->kill_all_client_conns = true; in rxrpc_destroy_all_client_connections()
1161 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_destroy_all_client_connections()
1163 del_timer_sync(&rxnet->client_conn_reap_timer); in rxrpc_destroy_all_client_connections()
1165 if (!rxrpc_queue_work(&rxnet->client_conn_reaper)) in rxrpc_destroy_all_client_connections()
1177 struct rxrpc_net *rxnet = local->rxnet; in rxrpc_clean_up_local_conns() local
1183 spin_lock(&rxnet->client_conn_cache_lock); in rxrpc_clean_up_local_conns()
1184 nr_active = rxnet->nr_active_client_conns; in rxrpc_clean_up_local_conns()
1186 list_for_each_entry_safe(conn, tmp, &rxnet->idle_client_conns, in rxrpc_clean_up_local_conns()
1200 rxnet->nr_active_client_conns = nr_active; in rxrpc_clean_up_local_conns()
1201 spin_unlock(&rxnet->client_conn_cache_lock); in rxrpc_clean_up_local_conns()