rxrpc: Fix two connection reaping bugs
authorDavid Howells <dhowells@redhat.com>
Thu, 26 Oct 2023 23:49:34 +0000 (00:49 +0100)
committerJakub Kicinski <kuba@kernel.org>
Thu, 2 Nov 2023 05:28:55 +0000 (22:28 -0700)
commit61e4a86600029e6e8d468d1fad6b6c749bebed19
tree483c3fb2f403139d840fb89306dc0f43c4df60bb
parent74da77921333171766031ea213b11f1e650814f9
rxrpc: Fix two connection reaping bugs

Fix two connection reaping bugs:

 (1) rxrpc_connection_expiry is in units of seconds, so
     rxrpc_disconnect_call() needs to multiply it by HZ when adding it to
     jiffies.

 (2) rxrpc_client_conn_reap_timeout() should set RXRPC_CLIENT_REAP_TIMER if
     local->kill_all_client_conns is clear, not if it is set (in which case
     we don't need the timer).  Without this, old client connections don't
     get cleaned up until the local endpoint is cleaned up.

Fixes: 5040011d073d ("rxrpc: Make the local endpoint hold a ref on a connected call")
Fixes: 0d6bf319bc5a ("rxrpc: Move the client conn cache management to the I/O thread")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Link: https://lore.kernel.org/r/783911.1698364174@warthog.procyon.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/rxrpc/conn_object.c
net/rxrpc/local_object.c