Lines Matching refs:call

82 	struct rxrpc_call *call;  in rxrpc_accept_incoming_call()  local
123 call = rxrpc_incoming_call(rx, conn, &sp->hdr, GFP_NOIO); in rxrpc_accept_incoming_call()
125 if (IS_ERR(call)) { in rxrpc_accept_incoming_call()
127 ret = PTR_ERR(call); in rxrpc_accept_incoming_call()
137 if (!test_and_set_bit(RXRPC_CALL_INIT_ACCEPT, &call->flags)) { in rxrpc_accept_incoming_call()
138 rxrpc_get_call(call); in rxrpc_accept_incoming_call()
140 spin_lock(&call->conn->state_lock); in rxrpc_accept_incoming_call()
142 call->conn->state == RXRPC_CONN_SERVER_UNSECURED) { in rxrpc_accept_incoming_call()
144 list_add_tail(&call->accept_link, &rx->secureq); in rxrpc_accept_incoming_call()
145 call->conn->state = RXRPC_CONN_SERVER_CHALLENGING; in rxrpc_accept_incoming_call()
146 atomic_inc(&call->conn->usage); in rxrpc_accept_incoming_call()
147 set_bit(RXRPC_CONN_CHALLENGE, &call->conn->events); in rxrpc_accept_incoming_call()
148 rxrpc_queue_conn(call->conn); in rxrpc_accept_incoming_call()
151 call->state = RXRPC_CALL_SERVER_ACCEPTING; in rxrpc_accept_incoming_call()
152 list_add_tail(&call->accept_link, &rx->acceptq); in rxrpc_accept_incoming_call()
153 rxrpc_get_call(call); in rxrpc_accept_incoming_call()
155 nsp->call = call; in rxrpc_accept_incoming_call()
157 ASSERTCMP(atomic_read(&call->usage), >=, 3); in rxrpc_accept_incoming_call()
160 spin_lock(&call->lock); in rxrpc_accept_incoming_call()
161 ret = rxrpc_queue_rcv_skb(call, notification, true, in rxrpc_accept_incoming_call()
163 spin_unlock(&call->lock); in rxrpc_accept_incoming_call()
167 spin_unlock(&call->conn->state_lock); in rxrpc_accept_incoming_call()
174 rxrpc_fast_process_packet(call, skb); in rxrpc_accept_incoming_call()
179 rxrpc_put_call(call); in rxrpc_accept_incoming_call()
187 read_lock_bh(&call->state_lock); in rxrpc_accept_incoming_call()
188 if (!test_bit(RXRPC_CALL_RELEASE, &call->flags) && in rxrpc_accept_incoming_call()
189 !test_and_set_bit(RXRPC_CALL_RELEASE, &call->events)) { in rxrpc_accept_incoming_call()
190 rxrpc_get_call(call); in rxrpc_accept_incoming_call()
191 rxrpc_queue_call(call); in rxrpc_accept_incoming_call()
193 read_unlock_bh(&call->state_lock); in rxrpc_accept_incoming_call()
194 rxrpc_put_call(call); in rxrpc_accept_incoming_call()
322 struct rxrpc_call *call; in rxrpc_accept_call() local
342 call = rb_entry(parent, struct rxrpc_call, sock_node); in rxrpc_accept_call()
344 if (user_call_ID < call->user_call_ID) in rxrpc_accept_call()
346 else if (user_call_ID > call->user_call_ID) in rxrpc_accept_call()
353 call = list_entry(rx->acceptq.next, struct rxrpc_call, accept_link); in rxrpc_accept_call()
354 list_del_init(&call->accept_link); in rxrpc_accept_call()
357 write_lock_bh(&call->state_lock); in rxrpc_accept_call()
358 switch (call->state) { in rxrpc_accept_call()
360 call->state = RXRPC_CALL_SERVER_RECV_REQUEST; in rxrpc_accept_call()
367 ret = call->conn->error; in rxrpc_accept_call()
377 call->user_call_ID = user_call_ID; in rxrpc_accept_call()
378 rb_link_node(&call->sock_node, parent, pp); in rxrpc_accept_call()
379 rb_insert_color(&call->sock_node, &rx->calls); in rxrpc_accept_call()
380 if (test_and_set_bit(RXRPC_CALL_HAS_USERID, &call->flags)) in rxrpc_accept_call()
382 if (test_and_set_bit(RXRPC_CALL_ACCEPTED, &call->events)) in rxrpc_accept_call()
384 rxrpc_queue_call(call); in rxrpc_accept_call()
386 rxrpc_get_call(call); in rxrpc_accept_call()
387 write_unlock_bh(&call->state_lock); in rxrpc_accept_call()
389 _leave(" = %p{%d}", call, call->debug_id); in rxrpc_accept_call()
390 return call; in rxrpc_accept_call()
396 _debug("release %p", call); in rxrpc_accept_call()
397 if (!test_bit(RXRPC_CALL_RELEASED, &call->flags) && in rxrpc_accept_call()
398 !test_and_set_bit(RXRPC_CALL_RELEASE, &call->events)) in rxrpc_accept_call()
399 rxrpc_queue_call(call); in rxrpc_accept_call()
401 write_unlock_bh(&call->state_lock); in rxrpc_accept_call()
402 _debug("discard %p", call); in rxrpc_accept_call()
415 struct rxrpc_call *call; in rxrpc_reject_call() local
429 call = list_entry(rx->acceptq.next, struct rxrpc_call, accept_link); in rxrpc_reject_call()
430 list_del_init(&call->accept_link); in rxrpc_reject_call()
433 write_lock_bh(&call->state_lock); in rxrpc_reject_call()
434 switch (call->state) { in rxrpc_reject_call()
436 call->state = RXRPC_CALL_SERVER_BUSY; in rxrpc_reject_call()
437 if (test_and_set_bit(RXRPC_CALL_REJECT_BUSY, &call->events)) in rxrpc_reject_call()
438 rxrpc_queue_call(call); in rxrpc_reject_call()
446 ret = call->conn->error; in rxrpc_reject_call()
459 _debug("release %p", call); in rxrpc_reject_call()
460 if (!test_bit(RXRPC_CALL_RELEASED, &call->flags) && in rxrpc_reject_call()
461 !test_and_set_bit(RXRPC_CALL_RELEASE, &call->events)) in rxrpc_reject_call()
462 rxrpc_queue_call(call); in rxrpc_reject_call()
464 write_unlock_bh(&call->state_lock); in rxrpc_reject_call()
465 _debug("discard %p", call); in rxrpc_reject_call()
483 struct rxrpc_call *call; in rxrpc_kernel_accept_call() local
486 call = rxrpc_accept_call(rxrpc_sk(sock->sk), user_call_ID); in rxrpc_kernel_accept_call()
487 _leave(" = %p", call); in rxrpc_kernel_accept_call()
488 return call; in rxrpc_kernel_accept_call()