summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/cdap.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/cdap.c b/src/lib/cdap.c
index 54a5b262..38806c23 100644
--- a/src/lib/cdap.c
+++ b/src/lib/cdap.c
@@ -703,6 +703,7 @@ int cdap_reply_wait(struct cdap * instance,
{
int ret;
struct cdap_req * r;
+ invoke_id_t iid;
if (instance == NULL || (data != NULL && len == NULL))
return -EINVAL;
@@ -711,10 +712,12 @@ int cdap_reply_wait(struct cdap * instance,
if (r == NULL)
return -EINVAL;
+ iid = r->iid;
+
ret = cdap_req_wait(r);
if (ret < 0) {
cdap_sent_del(instance, r);
- release_id(instance, r->iid);
+ release_id(instance, iid);
return ret;
}
@@ -727,8 +730,8 @@ int cdap_reply_wait(struct cdap * instance,
ret = r->response;
- release_id(instance, r->iid);
cdap_sent_del(instance, r);
+ release_id(instance, iid);
return ret;
}