Lines Matching refs:call
41 struct rxrpc_call *call; in rxrpc_service_prealloc_one() local
98 call = rxrpc_alloc_call(rx, gfp, debug_id); in rxrpc_service_prealloc_one()
99 if (!call) in rxrpc_service_prealloc_one()
101 call->flags |= (1 << RXRPC_CALL_IS_SERVICE); in rxrpc_service_prealloc_one()
102 call->state = RXRPC_CALL_SERVER_PREALLOC; in rxrpc_service_prealloc_one()
104 trace_rxrpc_call(call, rxrpc_call_new_service, in rxrpc_service_prealloc_one()
105 atomic_read(&call->usage), in rxrpc_service_prealloc_one()
127 call->user_call_ID = user_call_ID; in rxrpc_service_prealloc_one()
128 call->notify_rx = notify_rx; in rxrpc_service_prealloc_one()
129 rxrpc_get_call(call, rxrpc_call_got_kernel); in rxrpc_service_prealloc_one()
130 user_attach_call(call, user_call_ID); in rxrpc_service_prealloc_one()
131 rxrpc_get_call(call, rxrpc_call_got_userid); in rxrpc_service_prealloc_one()
132 rb_link_node(&call->sock_node, parent, pp); in rxrpc_service_prealloc_one()
133 rb_insert_color(&call->sock_node, &rx->calls); in rxrpc_service_prealloc_one()
134 set_bit(RXRPC_CALL_HAS_USERID, &call->flags); in rxrpc_service_prealloc_one()
137 list_add(&call->sock_link, &rx->sock_calls); in rxrpc_service_prealloc_one()
141 rxnet = call->rxnet; in rxrpc_service_prealloc_one()
143 list_add_tail(&call->link, &rxnet->calls); in rxrpc_service_prealloc_one()
146 b->call_backlog[call_head] = call; in rxrpc_service_prealloc_one()
148 _leave(" = 0 [%d -> %lx]", call->debug_id, user_call_ID); in rxrpc_service_prealloc_one()
153 rxrpc_cleanup_call(call); in rxrpc_service_prealloc_one()
230 struct rxrpc_call *call = b->call_backlog[tail]; in rxrpc_discard_prealloc() local
231 rcu_assign_pointer(call->socket, rx); in rxrpc_discard_prealloc()
233 _debug("discard %lx", call->user_call_ID); in rxrpc_discard_prealloc()
234 rx->discard_new_call(call, call->user_call_ID); in rxrpc_discard_prealloc()
235 rxrpc_put_call(call, rxrpc_call_put_kernel); in rxrpc_discard_prealloc()
237 rxrpc_call_completed(call); in rxrpc_discard_prealloc()
238 rxrpc_release_call(rx, call); in rxrpc_discard_prealloc()
239 rxrpc_put_call(call, rxrpc_call_put); in rxrpc_discard_prealloc()
257 struct rxrpc_call *call; in rxrpc_alloc_incoming_call() local
307 call = b->call_backlog[call_tail]; in rxrpc_alloc_incoming_call()
312 rxrpc_see_call(call); in rxrpc_alloc_incoming_call()
313 call->conn = conn; in rxrpc_alloc_incoming_call()
314 call->peer = rxrpc_get_peer(conn->params.peer); in rxrpc_alloc_incoming_call()
315 call->cong_cwnd = call->peer->cong_cwnd; in rxrpc_alloc_incoming_call()
316 return call; in rxrpc_alloc_incoming_call()
341 struct rxrpc_call *call; in rxrpc_new_incoming_call() local
353 call = NULL; in rxrpc_new_incoming_call()
364 call = rxrpc_alloc_incoming_call(rx, local, peer, conn, skb); in rxrpc_new_incoming_call()
365 if (!call) { in rxrpc_new_incoming_call()
368 call = NULL; in rxrpc_new_incoming_call()
372 trace_rxrpc_receive(call, rxrpc_receive_incoming, in rxrpc_new_incoming_call()
384 if (!mutex_trylock(&call->user_mutex)) in rxrpc_new_incoming_call()
388 rxrpc_incoming_call(rx, call, skb); in rxrpc_new_incoming_call()
389 conn = call->conn; in rxrpc_new_incoming_call()
392 rx->notify_new_call(&rx->sk, call, call->user_call_ID); in rxrpc_new_incoming_call()
400 set_bit(RXRPC_CONN_EV_CHALLENGE, &call->conn->events); in rxrpc_new_incoming_call()
401 rxrpc_queue_conn(call->conn); in rxrpc_new_incoming_call()
405 write_lock(&call->state_lock); in rxrpc_new_incoming_call()
406 if (call->state < RXRPC_CALL_COMPLETE) { in rxrpc_new_incoming_call()
408 call->state = RXRPC_CALL_SERVER_RECV_REQUEST; in rxrpc_new_incoming_call()
410 call->state = RXRPC_CALL_SERVER_ACCEPTING; in rxrpc_new_incoming_call()
412 write_unlock(&call->state_lock); in rxrpc_new_incoming_call()
416 rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, in rxrpc_new_incoming_call()
420 rxrpc_abort_call("CON", call, sp->hdr.seq, in rxrpc_new_incoming_call()
428 if (call->state == RXRPC_CALL_SERVER_ACCEPTING) in rxrpc_new_incoming_call()
429 rxrpc_notify_socket(call); in rxrpc_new_incoming_call()
436 rxrpc_put_call(call, rxrpc_call_put); in rxrpc_new_incoming_call()
438 _leave(" = %p{%d}", call, call->debug_id); in rxrpc_new_incoming_call()
441 return call; in rxrpc_new_incoming_call()
453 __acquires(call->user_mutex) in rxrpc_accept_call()
455 struct rxrpc_call *call; in rxrpc_accept_call() local
477 call = rb_entry(parent, struct rxrpc_call, sock_node); in rxrpc_accept_call()
479 if (user_call_ID < call->user_call_ID) in rxrpc_accept_call()
481 else if (user_call_ID > call->user_call_ID) in rxrpc_accept_call()
490 call = list_entry(rx->to_be_accepted.next, in rxrpc_accept_call()
499 if (mutex_lock_interruptible(&call->user_mutex) < 0) { in rxrpc_accept_call()
506 list_del_init(&call->accept_link); in rxrpc_accept_call()
508 rxrpc_see_call(call); in rxrpc_accept_call()
515 call = rb_entry(parent, struct rxrpc_call, sock_node); in rxrpc_accept_call()
517 if (user_call_ID < call->user_call_ID) in rxrpc_accept_call()
519 else if (user_call_ID > call->user_call_ID) in rxrpc_accept_call()
525 write_lock_bh(&call->state_lock); in rxrpc_accept_call()
526 switch (call->state) { in rxrpc_accept_call()
528 call->state = RXRPC_CALL_SERVER_RECV_REQUEST; in rxrpc_accept_call()
531 ret = call->error; in rxrpc_accept_call()
538 call->notify_rx = notify_rx; in rxrpc_accept_call()
539 call->user_call_ID = user_call_ID; in rxrpc_accept_call()
540 rxrpc_get_call(call, rxrpc_call_got_userid); in rxrpc_accept_call()
541 rb_link_node(&call->sock_node, parent, pp); in rxrpc_accept_call()
542 rb_insert_color(&call->sock_node, &rx->calls); in rxrpc_accept_call()
543 if (test_and_set_bit(RXRPC_CALL_HAS_USERID, &call->flags)) in rxrpc_accept_call()
546 write_unlock_bh(&call->state_lock); in rxrpc_accept_call()
548 rxrpc_notify_socket(call); in rxrpc_accept_call()
551 _leave(" = %p{%d}", call, call->debug_id); in rxrpc_accept_call()
552 return call; in rxrpc_accept_call()
555 _debug("release %p", call); in rxrpc_accept_call()
556 write_unlock_bh(&call->state_lock); in rxrpc_accept_call()
558 rxrpc_release_call(rx, call); in rxrpc_accept_call()
559 rxrpc_put_call(call, rxrpc_call_put); in rxrpc_accept_call()
578 struct rxrpc_call *call; in rxrpc_reject_call() local
596 call = list_entry(rx->to_be_accepted.next, in rxrpc_reject_call()
598 list_del_init(&call->accept_link); in rxrpc_reject_call()
600 rxrpc_see_call(call); in rxrpc_reject_call()
602 write_lock_bh(&call->state_lock); in rxrpc_reject_call()
603 switch (call->state) { in rxrpc_reject_call()
605 __rxrpc_abort_call("REJ", call, 1, RX_USER_ABORT, -ECONNABORTED); in rxrpc_reject_call()
609 ret = call->error; in rxrpc_reject_call()
616 write_unlock_bh(&call->state_lock); in rxrpc_reject_call()
619 rxrpc_send_abort_packet(call); in rxrpc_reject_call()
620 rxrpc_release_call(rx, call); in rxrpc_reject_call()
621 rxrpc_put_call(call, rxrpc_call_put); in rxrpc_reject_call()