aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/message.c
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2010-01-27 16:15:48 -0800
committerAndy Grover <andy.grover@oracle.com>2010-09-08 18:11:57 -0700
commitd0ab25a83c4a08cd98b73a37d3f4c069f7b4f50b (patch)
treed21dad44f483e684c35209f61b905b53ae582050 /net/rds/message.c
parentRDS: Inline rdma_prepare into cmsg_rdma_args (diff)
downloadlinux-dev-d0ab25a83c4a08cd98b73a37d3f4c069f7b4f50b.tar.xz
linux-dev-d0ab25a83c4a08cd98b73a37d3f4c069f7b4f50b.zip
RDS: purge atomic resources too in rds_message_purge()
Add atomic_free_op function, analogous to rdma_free_op, and call it in rds_message_purge(). Signed-off-by: Andy Grover <andy.grover@oracle.com>
Diffstat (limited to 'net/rds/message.c')
-rw-r--r--net/rds/message.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/net/rds/message.c b/net/rds/message.c
index a27e493a63a2..b53306c3e656 100644
--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -73,6 +73,11 @@ static void rds_message_purge(struct rds_message *rm)
rds_rdma_free_op(&rm->rdma.m_rdma_op);
if (rm->rdma.m_rdma_mr)
rds_mr_put(rm->rdma.m_rdma_mr);
+
+ if (rm->atomic.op_active)
+ rds_atomic_free_op(&rm->atomic);
+ if (rm->atomic.op_rdma_mr)
+ rds_mr_put(rm->atomic.op_rdma_mr);
}
void rds_message_put(struct rds_message *rm)