• David Howells's avatar
    rxrpc: Simplify connect() implementation and simplify sendmsg() op · 2341e077
    David Howells authored
    Simplify the RxRPC connect() implementation.  It will just note the
    destination address it is given, and if a sendmsg() comes along with no
    address, this will be assigned as the address.  No transport struct will be
    held internally, which will allow us to remove this later.
    
    Simplify sendmsg() also.  Whilst a call is active, userspace refers to it
    by a private unique user ID specified in a control message.  When sendmsg()
    sees a user ID that doesn't map to an extant call, it creates a new call
    for that user ID and attempts to add it.  If, when we try to add it, the
    user ID is now registered, we now reject the message with -EEXIST.  We
    should never see this situation unless two threads are racing, trying to
    create a call with the same ID - which would be an error.
    
    It also isn't required to provide sendmsg() with an address - provided the
    control message data holds a user ID that maps to a currently active call.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2341e077
ar-output.c 18.1 KB