diff options
Diffstat (limited to 'xlators/protocol/client/src/client-callback.c')
| -rw-r--r-- | xlators/protocol/client/src/client-callback.c | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/xlators/protocol/client/src/client-callback.c b/xlators/protocol/client/src/client-callback.c index 4935ef5de7c..09097e9981f 100644 --- a/xlators/protocol/client/src/client-callback.c +++ b/xlators/protocol/client/src/client-callback.c @@ -63,7 +63,10 @@ client_cbk_recall_lease (struct rpc_clnt *rpc, void *mydata, void *data)          }          upcall_data.data = &rl_data; -        gf_proto_recall_lease_to_upcall (&recall_lease, &upcall_data); +        ret = gf_proto_recall_lease_to_upcall (&recall_lease, &upcall_data); +        if (ret < 0) +                goto out; +          upcall_data.event_type = GF_UPCALL_RECALL_LEASE;          gf_msg_trace (THIS->name, 0, "Upcall gfid = %s, ret = %d", @@ -72,6 +75,12 @@ client_cbk_recall_lease (struct rpc_clnt *rpc, void *mydata, void *data)          default_notify (THIS, GF_EVENT_UPCALL, &upcall_data);  out: +        if (recall_lease.xdata.xdata_val) +                free (recall_lease.xdata.xdata_val); + +        if (rl_data.dict) +                dict_unref (rl_data.dict); +          return ret;  }  | 
