]> git.karo-electronics.de Git - karo-tx-linux.git/commit
SUNRPC: Get rid of the xs_error_report socket callback
authorTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 22 Oct 2012 21:14:36 +0000 (17:14 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Oct 2012 17:02:56 +0000 (10:02 -0700)
commit9f659caf90048296ca120143964222c3f8b6dae7
treeddbbf877086b78f49f3e60e5b6c1e705c4fb2fdd
parent71a36b53c81c3ecd1359af68ca4373e7d941a4c5
SUNRPC: Get rid of the xs_error_report socket callback

commit f878b657ce8e7d3673afe48110ec208a29e38c4a upstream.

Chris Perl reports that we're seeing races between the wakeup call in
xs_error_report and the connect attempts. Basically, Chris has shown
that in certain circumstances, the call to xs_error_report causes the
rpc_task that is responsible for reconnecting to wake up early, thus
triggering a disconnect and retry.

Since the sk->sk_error_report() calls in the socket layer are always
followed by a tcp_done() in the cases where we care about waking up
the rpc_tasks, just let the state_change callbacks take responsibility
for those wake ups.

Reported-by: Chris Perl <chris.perl@gmail.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Tested-by: Chris Perl <chris.perl@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sunrpc/xprtsock.c