]> git.kernelconcepts.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)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 30 Oct 2012 23:26:57 +0000 (23:26 +0000)
commita3e1d0bc4c950b597890ec851c3ea9ec709599dd
tree214c14eac1ed87098f478d9c622dcc2d0d802225
parentd5b39621940bd5cf4acf43116af84281b4c3238e
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: Ben Hutchings <ben@decadent.org.uk>
net/sunrpc/xprtsock.c