OSDN Git Service

rxrpc: Fix conn expiry timers
authorDavid Howells <dhowells@redhat.com>
Fri, 24 Nov 2017 10:18:42 +0000 (10:18 +0000)
committerDavid Howells <dhowells@redhat.com>
Fri, 24 Nov 2017 10:18:42 +0000 (10:18 +0000)
commit3d18cbb7fd0cfdf0b2ca18139950a4b0c1a0a220
tree0ef85eba5aeab8ba839a67e662a048544cce123e
parentf859ab61875978eeaa539740ff7f7d91f5d60006
rxrpc: Fix conn expiry timers

Fix the rxrpc connection expiry timers so that connections for closed
AF_RXRPC sockets get deleted in a more timely fashion, freeing up the
transport UDP port much more quickly.

 (1) Replace the delayed work items with work items plus timers so that
     timer_reduce() can be used to shorten them and so that the timer
     doesn't requeue the work item if the net namespace is dead.

 (2) Don't use queue_delayed_work() as that won't alter the timeout if the
     timer is already running.

 (3) Don't rearm the timers if the network namespace is dead.

Signed-off-by: David Howells <dhowells@redhat.com>
net/rxrpc/af_rxrpc.c
net/rxrpc/ar-internal.h
net/rxrpc/conn_client.c
net/rxrpc/conn_object.c
net/rxrpc/net_ns.c