summaryrefslogtreecommitdiffstats
path: root/net/sunrpc/clnt.c
diff options
context:
space:
mode:
authorJason Baron2014-09-24 20:08:00 +0200
committerTrond Myklebust2014-09-25 05:13:37 +0200
commitf279cd008fc9742f5ec294d9b8a793a7a0b163ef (patch)
treeb8622a23661a1937c090c87d29f5393cb559a511 /net/sunrpc/clnt.c
parentlockd: Try to reconnect if statd has moved (diff)
downloadkernel-qcow2-linux-f279cd008fc9742f5ec294d9b8a793a7a0b163ef.tar.gz
kernel-qcow2-linux-f279cd008fc9742f5ec294d9b8a793a7a0b163ef.tar.xz
kernel-qcow2-linux-f279cd008fc9742f5ec294d9b8a793a7a0b163ef.zip
rpc: return sent and err from xs_sendpages()
If an error is returned after the first bits of a packet have already been successfully queued, xs_sendpages() will return a positive 'int' value indicating success. Callers seem to treat this as -EAGAIN. However, there are cases where its not a question of waiting for the write queue to drain. For example, when there is an iptables rule dropping packets to the destination, the lower level code can return -EPERM only after parts of the packet have been successfully queued. In this case, we can end up continuously retrying resulting in a kernel softlockup. This patch is intended to make no changes in behavior but is in preparation for subsequent patches that can make decisions based on both on the number of bytes sent by xs_sendpages() and any errors that may have be returned. Signed-off-by: Jason Baron <jbaron@akamai.com> Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'net/sunrpc/clnt.c')
0 files changed, 0 insertions, 0 deletions