]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - net/rxrpc/sendmsg.c
rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet
authorDavid Howells <dhowells@redhat.com>
Tue, 30 Jul 2019 13:42:50 +0000 (14:42 +0100)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Tue, 17 Sep 2019 16:02:18 +0000 (18:02 +0200)
commitafac2b7920892ad3fbe5126608ab04a361a8fc7a
treefbbb2c7bb581512823e021afd4e45795747edd7f
parenta2ebe8e46a663081f7051a2e89f5936fa26dca56
rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet

BugLink: https://bugs.launchpad.net/bugs/1842114
[ Upstream commit c69565ee6681e151e2bb80502930a16e04b553d1 ]

Fix the fact that a notification isn't sent to the recvmsg side to indicate
a call failed when sendmsg() fails to transmit a DATA packet with the error
ENETUNREACH, EHOSTUNREACH or ECONNREFUSED.

Without this notification, the afs client just sits there waiting for the
call to complete in some manner (which it's not now going to do), which
also pins the rxrpc call in place.

This can be seen if the client has a scope-level IPv6 address, but not a
global-level IPv6 address, and we try and transmit an operation to a
server's IPv6 address.

Looking in /proc/net/rxrpc/calls shows completed calls just sat there with
an abort code of RX_USER_ABORT and an error code of -ENETUNREACH.

Fixes: c54e43d752c7 ("rxrpc: Fix missing start of call timeout")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
net/rxrpc/sendmsg.c