• Chuck Lever's avatar
    svcrdma: Fix leak of svc_rdma_recv_ctxt objects · 23cf1ee1
    Chuck Lever authored
    Utilize the xpo_release_rqst transport method to ensure that each
    rqstp's svc_rdma_recv_ctxt object is released even when the server
    cannot return a Reply for that rqstp.
    
    Without this fix, each RPC whose Reply cannot be sent leaks one
    svc_rdma_recv_ctxt. This is a 2.5KB structure, a 4KB DMA-mapped
    Receive buffer, and any pages that might be part of the Reply
    message.
    
    The leak is infrequent unless the network fabric is unreliable or
    Kerberos is in use, as GSS sequence window overruns, which result
    in connection loss, are more common on fast transports.
    
    Fixes: 3a88092e ("svcrdma: Preserve Receive buffer until svc_rdma_sendto")
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    23cf1ee1
svcsock.c 37.3 KB