lkml.org 
[lkml]   [2019]   [Aug]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 27/98] rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet
    Date
    [ 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>
    ---
    net/rxrpc/sendmsg.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
    index be01f9c5d963d..5d6ab4f6fd7ab 100644
    --- a/net/rxrpc/sendmsg.c
    +++ b/net/rxrpc/sendmsg.c
    @@ -230,6 +230,7 @@ static void rxrpc_queue_packet(struct rxrpc_sock *rx, struct rxrpc_call *call,
    rxrpc_set_call_completion(call,
    RXRPC_CALL_LOCAL_ERROR,
    0, ret);
    + rxrpc_notify_socket(call);
    goto out;
    }
    _debug("need instant resend %d", ret);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-27 10:36    [W:4.228 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site