]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
SUNRPC: Fix races in xs_nospace()
authorTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 11 Feb 2014 14:15:54 +0000 (09:15 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 7 Mar 2014 06:06:20 +0000 (22:06 -0800)
commita57401ef4a206089f2e075be65ca55b21c3ae209
treeef57e3e6ba61441e999d8c2dc33f403142bd103c
parent89fe406b29aeeb32f7ff2116f084879f48bf19ce
SUNRPC: Fix races in xs_nospace()

commit 06ea0bfe6e6043cb56a78935a19f6f8ebc636226 upstream.

When a send failure occurs due to the socket being out of buffer space,
we call xs_nospace() in order to have the RPC task wait until the
socket has drained enough to make it worth while trying again.
The current patch fixes a race in which the socket is drained before
we get round to setting up the machinery in xs_nospace(), and which
is reported to cause hangs.

Link: http://lkml.kernel.org/r/20140210170315.33dfc621@notabene.brown
Fixes: a9a6b52ee1ba (SUNRPC: Don't start the retransmission timer...)
Reported-by: Neil Brown <neilb@suse.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/sunrpc/xprtsock.c