• Chuck Lever's avatar
    xprtrdma: Destroy reps from previous connection instance · b7ff0185
    Chuck Lever authored
    To safely get rid of all rpcrdma_reps from a particular connection
    instance, xprtrdma has to wait until each of those reps is finished
    being used. A rep may be backing the rq_rcv_buf of an RPC that has
    just completed, for example.
    
    Since it is safe to invoke rpcrdma_rep_destroy() only in the Receive
    completion handler, simply mark reps remaining in the rb_all_reps
    list after the transport is drained. These will then be deleted as
    rpcrdma_post_recvs pulls them off the rep free list.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    b7ff0185
verbs.c 40.6 KB