linux/net/rxrpc
David Howells 93368b6bd5 rxrpc: Move call state changes from recvmsg to I/O thread
Move the call state changes that are made in rxrpc_recvmsg() to the I/O
thread.  This means that, thenceforth, only the I/O thread does this and
the call state lock can be removed.

This requires the Rx phase to be ended when the last packet is received,
not when it is processed.

Since this now changes the rxrpc call state to SUCCEEDED before we've
consumed all the data from it, rxrpc_kernel_check_life() mustn't say the
call is dead until the recvmsg queue is empty (unless the call has failed).

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
2023-01-06 09:43:33 +00:00
..
af_rxrpc.c rxrpc: Move call state changes from recvmsg to I/O thread 2023-01-06 09:43:33 +00:00
ar-internal.h rxrpc: Move call state changes from recvmsg to I/O thread 2023-01-06 09:43:33 +00:00
call_accept.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
call_event.c rxrpc: Move call state changes from sendmsg to I/O thread 2023-01-06 09:43:33 +00:00
call_object.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
call_state.c rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
conn_client.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
conn_event.c rxrpc: Offload the completion of service conn security to the I/O thread 2023-01-06 09:43:32 +00:00
conn_object.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
conn_service.c rxrpc: Remove the _bh annotation from all the spinlocks 2022-12-01 13:36:42 +00:00
input.c rxrpc: Move call state changes from recvmsg to I/O thread 2023-01-06 09:43:33 +00:00
insecure.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
io_thread.c rxrpc: Offload the completion of service conn security to the I/O thread 2023-01-06 09:43:32 +00:00
Kconfig rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
key.c rxrpc: Drop rxrpc_conn_parameters from rxrpc_connection and rxrpc_bundle 2022-12-01 13:36:38 +00:00
local_event.c rxrpc: Make the I/O thread take over the call and local processor work 2022-12-01 13:36:42 +00:00
local_object.c rxrpc: Make the set of connection IDs per local endpoint 2023-01-06 09:43:32 +00:00
Makefile rxrpc: Split out the call state changing functions into their own file 2023-01-06 09:43:32 +00:00
misc.c rxrpc: Get rid of the Rx ring 2022-11-08 16:42:28 +00:00
net_ns.c rxrpc: Don't hold a ref for connection workqueue 2022-12-01 13:36:40 +00:00
output.c rxrpc: Clean up connection abort 2023-01-06 09:43:32 +00:00
peer_event.c rxrpc: Fix locking issues in rxrpc_put_peer_locked() 2022-12-19 09:51:31 +00:00
peer_object.c rxrpc: Stash the network namespace pointer in rxrpc_local 2023-01-06 09:43:31 +00:00
proc.c rxrpc: Clean up connection abort 2023-01-06 09:43:32 +00:00
protocol.h rxrpc: Clone received jumbo subpackets and queue separately 2022-11-08 16:42:28 +00:00
recvmsg.c rxrpc: Move call state changes from recvmsg to I/O thread 2023-01-06 09:43:33 +00:00
rtt.c rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() 2021-09-24 14:18:34 +01:00
rxkad.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
rxperf.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
security.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
sendmsg.c rxrpc: Move call state changes from sendmsg to I/O thread 2023-01-06 09:43:33 +00:00
server_key.c rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
skbuff.c rxrpc: trace: Don't use __builtin_return_address for sk_buff tracing 2022-12-01 13:36:39 +00:00
sysctl.c rxrpc: Get rid of the Rx ring 2022-11-08 16:42:28 +00:00
txbuf.c rxrpc: Transmit ACKs at the point of generation 2022-12-01 13:36:43 +00:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00