diff options
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/protocol/client/src/client-rpc-fops.c | 9 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server-rpc-fops.c | 4 | ||||
| -rw-r--r-- | xlators/protocol/server/src/server.h | 2 | 
3 files changed, 8 insertions, 7 deletions
diff --git a/xlators/protocol/client/src/client-rpc-fops.c b/xlators/protocol/client/src/client-rpc-fops.c index b47d2268391..2d1b9540df4 100644 --- a/xlators/protocol/client/src/client-rpc-fops.c +++ b/xlators/protocol/client/src/client-rpc-fops.c @@ -3153,7 +3153,8 @@ client3_3_compound_cbk (struct rpc_req *req, struct iovec *iov, int count,          xlator_t                *this            = NULL;          dict_t                  *xdata           = NULL;          clnt_local_t            *local           = NULL; -        int                     i,length         = 0; +        int                     i                = 0; +        int                     length           = 0;          int                     ret              = -1;          this = THIS; @@ -3176,12 +3177,12 @@ client3_3_compound_cbk (struct rpc_req *req, struct iovec *iov, int count,                  goto out;          } +        length =  local->length; +          GF_PROTOCOL_DICT_UNSERIALIZE (this, xdata, (rsp.xdata.xdata_val),                                        (rsp.xdata.xdata_len), rsp.op_ret,                                         rsp.op_errno, out); -        length =  local->length; -          args_cbk = compound_args_cbk_alloc (length, xdata);          if (!args_cbk) {                  rsp.op_ret   = -1; @@ -3214,7 +3215,7 @@ out:          free (rsp.xdata.xdata_val); -        client_compound_rsp_cleanup (&rsp, local->length); +        client_compound_rsp_cleanup (&rsp, length);          if (xdata)                  dict_unref (xdata); diff --git a/xlators/protocol/server/src/server-rpc-fops.c b/xlators/protocol/server/src/server-rpc-fops.c index 43061b03c56..25f575d3c6a 100644 --- a/xlators/protocol/server/src/server-rpc-fops.c +++ b/xlators/protocol/server/src/server-rpc-fops.c @@ -3324,7 +3324,7 @@ server_compound_resume (call_frame_t *frame, xlator_t *bound_xl)                  goto err;          } -        req = state->req; +        req = &state->req;          length = req->compound_req_array.compound_req_array_len;          state->args = compound_fop_alloc (length, req->compound_fop_enum, @@ -6725,7 +6725,7 @@ server3_3_compound (rpcsvc_request_t *req)                  goto out;          } -        state->req           = &args; +        state->req           = args;          state->iobref        = iobref_ref (req->iobref);          if (len < req->msg[0].iov_len) { diff --git a/xlators/protocol/server/src/server.h b/xlators/protocol/server/src/server.h index c87dbe67b12..0b37eb1414a 100644 --- a/xlators/protocol/server/src/server.h +++ b/xlators/protocol/server/src/server.h @@ -191,7 +191,7 @@ struct _server_state {          struct gf_lease   lease;          lock_migration_info_t locklist;          /* required for compound fops */ -        gfs3_compound_req *req; +        gfs3_compound_req  req;          /* last length till which iovec for compound           * writes was processed */          int               write_length;  | 
