diff options
Diffstat (limited to 'net/rds')
-rw-r--r-- | net/rds/ib_send.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c index c18228aec779..17fa80803ab0 100644 --- a/net/rds/ib_send.c +++ b/net/rds/ib_send.c @@ -243,8 +243,12 @@ void rds_ib_send_cq_comp_handler(struct ib_cq *cq, void *context) struct rds_message *rm; rm = rds_send_get_message(conn, send->s_op); - if (rm) + if (rm) { + if (rm->m_rdma_op) + rds_ib_send_unmap_rdma(ic, rm->m_rdma_op); rds_ib_send_rdma_complete(rm, wc.status); + rds_message_put(rm); + } } oldest = (oldest + 1) % ic->i_send_ring.w_nr; |