[PATCH net] rxrpc: Fix sendmsg() returning EPIPE due to recvmsg() returning ENODATA
David Miller
davem at davemloft.net
Mon Jul 20 20:47:43 EDT 2020
From: David Howells <dhowells at redhat.com>
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 at redhat.com>
Applied and queued up for -stable, thanks David.
More information about the linux-afs
mailing list