Re: [PATCH net] rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA

From: David Miller
Date: Mon Jul 20 2020 - 20:47:46 EST


From: David Howells <dhowells@xxxxxxxxxx>
Date: Mon, 20 Jul 2020 12:41:46 +0100

> rxrpc_sendmsg() returns EPIPE if there's an outstanding error, such as if
> rxrpc_recvmsg() indicating ENODATA if there's nothing for it to read.
>
> Change rxrpc_recvmsg() to return EAGAIN instead if there's nothing to read
> as this particular error doesn't get stored in ->sk_err by the networking
> core.
>
> Also change rxrpc_sendmsg() so that it doesn't fail with delayed receive
> errors (there's no way for it to report which call, if any, the error was
> caused by).
>
> Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>

Applied and queued up for -stable, thanks David.