diff options
Diffstat (limited to 'xlators/protocol/client/src/client.c')
| -rw-r--r-- | xlators/protocol/client/src/client.c | 22 | 
1 files changed, 13 insertions, 9 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index c8e84f6e1b7..5aa3d9418f6 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -131,10 +131,7 @@ client_type_to_gf_type(short l_type)  int  client_submit_request(xlator_t *this, void *req, call_frame_t *frame,                        rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbkfn, -                      struct iobref *iobref, struct iovec *payload, -                      int payloadcnt, struct iovec *rsp_payload, -                      int rsp_payload_count, struct iobref *rsp_iobref, -                      xdrproc_t xdrproc) +                      client_payload_t *cp, xdrproc_t xdrproc)  {      int ret = -1;      clnt_conf_t *conf = NULL; @@ -180,8 +177,8 @@ client_submit_request(xlator_t *this, void *req, call_frame_t *frame,              goto out;          } -        if (iobref != NULL) { -            ret = iobref_merge(new_iobref, iobref); +        if (cp && cp->iobref != NULL) { +            ret = iobref_merge(new_iobref, cp->iobref);              if (ret != 0) {                  gf_msg(this->name, GF_LOG_WARNING, ENOMEM, PC_MSG_NO_MEMORY,                         "cannot merge " @@ -224,9 +221,16 @@ client_submit_request(xlator_t *this, void *req, call_frame_t *frame,      }      /* Send the msg */ -    ret = rpc_clnt_submit(conf->rpc, prog, procnum, cbkfn, &iov, count, payload, -                          payloadcnt, new_iobref, frame, payload, payloadcnt, -                          rsp_payload, rsp_payload_count, rsp_iobref); +    if (cp) { +        ret = rpc_clnt_submit(conf->rpc, prog, procnum, cbkfn, &iov, count, +                              cp->payload, cp->payload_cnt, new_iobref, frame, +                              cp->rsphdr, cp->rsphdr_cnt, cp->rsp_payload, +                              cp->rsp_payload_cnt, cp->rsp_iobref); +    } else { +        ret = rpc_clnt_submit(conf->rpc, prog, procnum, cbkfn, &iov, count, +                              NULL, 0, new_iobref, frame, NULL, 0, NULL, 0, +                              NULL); +    }      if (ret < 0) {          gf_msg_debug(this->name, 0, "rpc_clnt_submit failed");  | 
