diff options
| -rw-r--r-- | xlators/protocol/client/src/client-handshake.c | 28 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server-helpers.c | 2 | 
2 files changed, 19 insertions, 11 deletions
diff --git a/xlators/protocol/client/src/client-handshake.c b/xlators/protocol/client/src/client-handshake.c index eaca65491..d058986ba 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;  } diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c index 7c5106d01..01c21636b 100644 --- a/xlators/protocol/server/src/server-helpers.c +++ b/xlators/protocol/server/src/server-helpers.c @@ -687,7 +687,7 @@ server_connection_get (xlator_t *this, const char *id)          pthread_mutex_lock (&conf->mutex);          {                  list_for_each_entry (trav, &conf->conns, list) { -                        if (!strncmp (trav->id, id, strlen (id))) { +                        if (!strcmp (trav->id, id)) {                                  conn = trav;                                  conn->bind_ref++;                                  goto unlock;  | 
