Skip to content
  • Chuck Lever's avatar
    xprtrdma: Honor ->send_request API contract · 7a89f9c6
    Chuck Lever authored
    Commit c93c6223
    
     ("xprtrdma: Disconnect on registration failure")
    added a disconnect for some RPC marshaling failures. This is needed
    only in a handful of cases, but it was triggering for simple stuff
    like temporary resource shortages. Try to straighten this out.
    
    Fix up the lower layers so they don't return -ENOMEM or other error
    codes that the RPC client's FSM doesn't explicitly recognize.
    
    Also fix up the places in the send_request path that do want a
    disconnect. For example, when ib_post_send or ib_post_recv fail,
    this is a sign that there is a send or receive queue resource
    miscalculation. That should be rare, and is a sign of a software
    bug. But xprtrdma can recover: disconnect to reset the transport and
    start over.
    
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Tested-by: default avatarSteve Wise <swise@opengridcomputing.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    7a89f9c6