diff options
| author | Raghavendra G <raghavendra@gluster.com> | 2010-08-30 08:04:07 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-08-30 06:54:17 -0700 | 
| commit | 06607a4de8c4414bb102d61b9cf6307d8da020bb (patch) | |
| tree | a9fc304f78f067c5d9777218e845e57525cec702 /xlators/protocol/client/src/client.c | |
| parent | 300b4fefcbb5a5ced4f0554e109679e44cdf44ea (diff) | |
changes to client to make use of the rdma functionality.
- preallocate buffers in client and pass them to transport layer whenever a
   large response is expected.
Signed-off-by: Raghavendra G <raghavendra@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 513 (Introduce 0 copy rdma)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=513
Diffstat (limited to 'xlators/protocol/client/src/client.c')
| -rw-r--r-- | xlators/protocol/client/src/client.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/xlators/protocol/client/src/client.c b/xlators/protocol/client/src/client.c index 458ecfa8f88..c453b7a24a9 100644 --- a/xlators/protocol/client/src/client.c +++ b/xlators/protocol/client/src/client.c @@ -44,7 +44,10 @@ int client_destroy_rpc (xlator_t *this);  int  client_submit_request (xlator_t *this, void *req, call_frame_t *frame,                         rpc_clnt_prog_t *prog, int procnum, fop_cbk_fn_t cbk, -                       struct iobref *iobref, gfs_serialize_t sfunc) +                       struct iobref *iobref, gfs_serialize_t sfunc, +                       struct iovec *rsphdr, int rsphdr_count, +                       struct iovec *rsp_payload, int rsp_payload_count, +                       struct iobref *rsp_iobref)  {          int          ret         = -1;          clnt_conf_t *conf        = NULL; @@ -96,8 +99,9 @@ client_submit_request (xlator_t *this, void *req, call_frame_t *frame,                  count = 1;          }          /* Send the msg */ -        ret = rpc_clnt_submit (conf->rpc, prog, procnum, cbk, &iov, count, NULL, 0, -                               iobref, frame, NULL, 0, NULL, 0, NULL); +        ret = rpc_clnt_submit (conf->rpc, prog, procnum, cbk, &iov, count, NULL, +                               0, iobref, frame, rsphdr, rsphdr_count, +                               rsp_payload, rsp_payload_count, rsp_iobref);          if (ret == 0) {                  pthread_mutex_lock (&conf->rpc->conn.lock);  | 
