rxrpc: Wrap accesses to get call state to put the barrier in one place
authorDavid Howells <dhowells@redhat.com>
Mon, 19 Dec 2022 15:32:32 +0000 (15:32 +0000)
committerDavid Howells <dhowells@redhat.com>
Fri, 6 Jan 2023 09:43:32 +0000 (09:43 +0000)
commitd41b3f5b96881809c73f86e3ca436c9426610b7a
treece6a8bce0d039874a7d221def72b35e7f9ec4d12
parent0b9bb322f13d486d5b8630264ccbfb4794bb43a9
rxrpc: Wrap accesses to get call state to put the barrier in one place

Wrap accesses to get the state of a call from outside of the I/O thread in
a single place so that the barrier needed to order wrt the error code and
abort code is in just that place.

Also use a barrier when setting the call state and again when reading the
call state such that the auxiliary completion info (error code, abort code)
can be read without taking a read lock on the call state lock.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
net/rxrpc/af_rxrpc.c
net/rxrpc/ar-internal.h
net/rxrpc/call_state.c
net/rxrpc/recvmsg.c
net/rxrpc/sendmsg.c