diff options
Diffstat (limited to 'xlators/protocol/client/src/client-handshake.c')
-rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index eaca6549114..d058986ba38 100644 --- a/xlators/protocol/client/src/client-handshake.c +++ b/xlators/protocol/client/src/client-handshake.c @@ -454,13 +454,13 @@ client_set_lk_version_cbk (struct rpc_req *req, struct iovec *iov, ret = 0; out: - //TODO: Check for all released fdctx and destroy them if (fr) STACK_DESTROY (fr->root); return ret; } +//TODO: Check for all released fdctx and destroy them int client_set_lk_version (xlator_t *this) { @@ -469,16 +469,24 @@ client_set_lk_version (xlator_t *this) call_frame_t *frame = NULL; gf_set_lk_ver_req req = {0, }; + GF_VALIDATE_OR_GOTO ("client", this, err); + conf = (clnt_conf_t *) this->private; req.lk_ver = client_get_lk_ver (conf); - req.uid = this->ctx->process_uuid; - - gf_log (this->name, GF_LOG_DEBUG, "Sending SET_LK_VERSION"); + ret = gf_asprintf (&req.uid, "%s-%s-%d", + this->ctx->process_uuid, this->name, + this->graph->id); + if (ret == -1) + goto err; frame = create_frame (this, this->ctx->pool); - if (!frame) + if (!frame) { + ret = -1; goto out; + } + + gf_log (this->name, GF_LOG_DEBUG, "Sending SET_LK_VERSION"); ret = client_submit_request (this, &req, frame, conf->handshake, @@ -487,11 +495,11 @@ client_set_lk_version (xlator_t *this) NULL, NULL, 0, NULL, 0, NULL, (xdrproc_t)xdr_gf_set_lk_ver_req); out: - if (ret < 0) { - //TODO: Check for all released fdctx and destroy them - gf_log (this->name, GF_LOG_WARNING, - "Failed to send SET_LK_VERSION to server"); - } + GF_FREE (req.uid); + return ret; +err: + gf_log (this->name, GF_LOG_WARNING, + "Failed to send SET_LK_VERSION to server"); return ret; } |