]> git.baikalelectronics.ru Git - kernel.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)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 24 Oct 2012 14:46:15 +0000 (10:46 -0400)
commitf2a28ba16bdab276373293db6034d7d2ad786f20
treece2f01c75268473a8d4e8879f5f55b73a16caa7d
parentda707ef639078ab25a2d691e2e2c52a05393fa8a
SUNRPC: Get rid of the xs_error_report socket callback

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>
Cc: stable@vger.kernel.org
Tested-by: Chris Perl <chris.perl@gmail.com>
net/sunrpc/xprtsock.c