Lines Matching refs:local

45 static void rxrpc_put_client_connection_id(struct rxrpc_local *local,
48 idr_remove(&local->conn_ids, conn->proto.cid >> RXRPC_CIDSHIFT);
54 static void rxrpc_destroy_client_conn_ids(struct rxrpc_local *local)
59 if (!idr_is_empty(&local->conn_ids)) {
60 idr_for_each_entry(&local->conn_ids, conn, id) {
67 idr_destroy(&local->conn_ids);
81 bundle->local = call->local;
95 write_lock(&bundle->local->rxnet->conn_lock);
96 list_add_tail(&bundle->proc_link, &bundle->local->rxnet->bundle_proc_list);
97 write_unlock(&bundle->local->rxnet->conn_lock);
116 write_lock(&bundle->local->rxnet->conn_lock);
118 write_unlock(&bundle->local->rxnet->conn_lock);
140 * Get rid of outstanding client connection preallocations when a local
143 void rxrpc_purge_client_connections(struct rxrpc_local *local)
145 rxrpc_destroy_client_conn_ids(local);
155 struct rxrpc_local *local = bundle->local;
156 struct rxrpc_net *rxnet = local->rxnet;
165 id = idr_alloc_cyclic(&local->conn_ids, conn, 1, 0x40000000,
174 conn->proto.epoch = local->rxnet->epoch;
177 conn->local = rxrpc_get_local(bundle->local, rxrpc_local_get_client_conn);
229 id_cursor = idr_get_cursor(&conn->local->conn_ids);
253 struct rxrpc_local *local = call->local;
269 spin_lock(&local->client_bundles_lock);
270 p = local->client_bundles.rb_node;
287 spin_unlock(&local->client_bundles_lock);
296 spin_lock(&local->client_bundles_lock);
297 pp = &local->client_bundles.rb_node;
319 rb_insert_color(&candidate->local_node, &local->client_bundles);
321 spin_unlock(&local->client_bundles_lock);
330 spin_unlock(&local->client_bundles_lock);
508 void rxrpc_connect_client_calls(struct rxrpc_local *local)
512 while ((call = list_first_entry_or_null(&local->new_client_calls,
517 spin_lock(&local->client_call_lock);
519 spin_unlock(&local->client_call_lock);
556 static void rxrpc_set_client_reap_timer(struct rxrpc_local *local)
558 if (!local->kill_all_client_conns) {
562 if (local->rxnet->live)
563 timer_reduce(&local->client_conn_reap_timer, reap_at);
574 struct rxrpc_local *local = bundle->local;
659 list_move_tail(&conn->cache_link, &local->idle_client_conns);
661 rxrpc_set_client_reap_timer(local);
686 rxrpc_put_client_connection_id(bundle->local, conn);
697 struct rxrpc_local *local;
703 local = bundle->local;
704 if (atomic_dec_and_lock(&bundle->active, &local->client_bundles_lock)) {
707 rb_erase(&bundle->local_node, &local->client_bundles);
711 spin_unlock(&local->client_bundles_lock);
722 struct rxrpc_local *local = conn->local;
723 struct rxrpc_net *rxnet = local->rxnet;
730 rxrpc_put_client_connection_id(local, conn);
740 void rxrpc_discard_expired_client_conns(struct rxrpc_local *local)
751 nr_conns = atomic_read(&local->rxnet->nr_client_conns);
754 conn = list_first_entry_or_null(&local->idle_client_conns,
759 if (!local->kill_all_client_conns) {
768 if (conn->local->service_closed)
798 if (!local->kill_all_client_conns)
799 timer_reduce(&local->client_conn_reap_timer, conn_expires_at);
805 * Clean up the client connections on a local endpoint.
807 void rxrpc_clean_up_local_conns(struct rxrpc_local *local)
813 local->kill_all_client_conns = true;
815 del_timer_sync(&local->client_conn_reap_timer);
817 while ((conn = list_first_entry_or_null(&local->idle_client_conns,