Lines Matching refs:call

288  * Get a record for the remote peer in a call.
307 * rxrpc_kernel_begin_call - Allow a kernel service to begin a call
308 * @sock: The socket on which to make the call
312 * @tx_total_len: Total length of data to transmit during the call (or -1)
313 * @hard_timeout: The maximum lifespan of the call in sec
317 * @upgrade: Request service upgrade for call
318 * @interruptibility: The call is interruptible, or can be canceled.
319 * @debug_id: The debug ID for tracing to be assigned to the call
321 * Allow a kernel service to begin a call on the nominated socket. This just
323 * call IDs as appropriate. The call to be used is returned.
343 struct rxrpc_call *call;
373 call = rxrpc_new_client_call(rx, &cp, &p, gfp, debug_id);
375 if (!IS_ERR(call)) {
376 call->notify_rx = notify_rx;
377 mutex_unlock(&call->user_mutex);
380 _leave(" = %p", call);
381 return call;
394 * rxrpc_kernel_shutdown_call - Allow a kernel service to shut down a call it was using
395 * @sock: The socket the call is on
396 * @call: The call to end
398 * Allow a kernel service to shut down a call it was using. The call must be
399 * complete before this is called (the call should be aborted if necessary).
401 void rxrpc_kernel_shutdown_call(struct socket *sock, struct rxrpc_call *call)
403 _enter("%d{%d}", call->debug_id, refcount_read(&call->ref));
405 mutex_lock(&call->user_mutex);
406 if (!test_bit(RXRPC_CALL_RELEASED, &call->flags)) {
407 rxrpc_release_call(rxrpc_sk(sock->sk), call);
409 /* Make sure we're not going to call back into a kernel service */
410 if (call->notify_rx) {
411 spin_lock(&call->notify_lock);
412 call->notify_rx = rxrpc_dummy_notify_rx;
413 spin_unlock(&call->notify_lock);
416 mutex_unlock(&call->user_mutex);
421 * rxrpc_kernel_put_call - Release a reference to a call
422 * @sock: The socket the call is on
423 * @call: The call to put
425 * Drop the application's ref on an rxrpc call.
427 void rxrpc_kernel_put_call(struct socket *sock, struct rxrpc_call *call)
429 rxrpc_put_call(call, rxrpc_call_put_kernel);
434 * rxrpc_kernel_check_life - Check to see whether a call is still alive
435 * @sock: The socket the call is on
436 * @call: The call to check
438 * Allow a kernel service to find out whether a call is still alive - whether
442 const struct rxrpc_call *call)
444 if (!rxrpc_call_is_complete(call))
446 if (call->completion != RXRPC_CALL_SUCCEEDED)
448 return !skb_queue_empty(&call->recvmsg_queue);
453 * rxrpc_kernel_get_epoch - Retrieve the epoch value from a call.
454 * @sock: The socket the call is on
455 * @call: The call to query
457 * Allow a kernel service to retrieve the epoch value from a service call to
460 u32 rxrpc_kernel_get_epoch(struct socket *sock, struct rxrpc_call *call)
462 return call->conn->proto.epoch;
487 * rxrpc_kernel_set_max_life - Set maximum lifespan on a call
488 * @sock: The socket the call is on
489 * @call: The call to configure
490 * @hard_timeout: The maximum lifespan of the call in ms
492 * Set the maximum lifespan of a call. The call will end with ETIME or
495 void rxrpc_kernel_set_max_life(struct socket *sock, struct rxrpc_call *call,
500 mutex_lock(&call->user_mutex);
503 WRITE_ONCE(call->expect_term_by, expect_term_by);
504 trace_rxrpc_timer_set(call, delay, rxrpc_timer_trace_hard);
505 rxrpc_poke_call(call, rxrpc_call_poke_set_timeout);
507 mutex_unlock(&call->user_mutex);
562 * - initiates a call (ID in control data)
563 * - ends the request phase of a call (if MSG_MORE is not set)
564 * - sends a call data packet
801 * socket; there is no guarantee that any particular call in progress
1033 pr_notice("Failed to allocate call jar\n");