SUNRPC: Report TCP errors to the caller
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
This commit is contained in:
@@ -677,9 +677,6 @@ static int xs_tcp_send_request(struct rpc_task *task)
|
|||||||
dprintk("RPC: xs_tcp_send_request(%u) = %d\n",
|
dprintk("RPC: xs_tcp_send_request(%u) = %d\n",
|
||||||
xdr->len - req->rq_bytes_sent, status);
|
xdr->len - req->rq_bytes_sent, status);
|
||||||
|
|
||||||
if (unlikely(sent == 0 && status < 0))
|
|
||||||
break;
|
|
||||||
|
|
||||||
/* If we've sent the entire packet, immediately
|
/* If we've sent the entire packet, immediately
|
||||||
* reset the count of bytes sent. */
|
* reset the count of bytes sent. */
|
||||||
req->rq_bytes_sent += sent;
|
req->rq_bytes_sent += sent;
|
||||||
@@ -689,10 +686,12 @@ static int xs_tcp_send_request(struct rpc_task *task)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sent != 0)
|
if (status < 0)
|
||||||
continue;
|
break;
|
||||||
status = -EAGAIN;
|
if (sent == 0) {
|
||||||
break;
|
status = -EAGAIN;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (status == -EAGAIN && sk_stream_is_writeable(transport->inet))
|
if (status == -EAGAIN && sk_stream_is_writeable(transport->inet))
|
||||||
status = -ENOBUFS;
|
status = -ENOBUFS;
|
||||||
|
|||||||
Reference in New Issue
Block a user