diff options
author | Rajesh Joseph <rjoseph@redhat.com> | 2014-01-15 02:22:44 -0800 |
---|---|---|
committer | Gerrit Code Review <review@dev.gluster.org> | 2014-01-15 02:22:44 -0800 |
commit | 6cb4c91339e5e6452bbb3de6d5f2e75c50d687bc (patch) | |
tree | 109e598f2ec2ebeca7cc242887b722d2ac77c09d | |
parent | bcb31ded62545c52e69fbcb79ffdc927d8a9b5f2 (diff) | |
parent | bae3b86cc44adb43fb70f674da1d9e31c60bba96 (diff) |
Merge "protocol/server: copy the response into the payload instead of using the pointer" into development
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 1 | ||||
-rw-r--r-- | xlators/protocol/server/src/server-helpers.c | 7 | ||||
-rw-r--r-- | xlators/protocol/server/src/server.h | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index 93da3f296..3314c92d4 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -3138,6 +3138,7 @@ socket_submit_reply (rpc_transport_t *this, rpc_transport_reply_t *reply) } priv->submit_log = 0; + entry = __socket_ioq_new (this, &reply->msg); if (!entry) goto unlock; diff --git a/xlators/protocol/server/src/server-helpers.c b/xlators/protocol/server/src/server-helpers.c index 12951a798..a4055f1b8 100644 --- a/xlators/protocol/server/src/server-helpers.c +++ b/xlators/protocol/server/src/server-helpers.c @@ -964,7 +964,7 @@ gf_barrier_transmit (server_conf_t *conf, gf_barrier_payload_t *payload) if (client) lk_heal = ((server_conf_t *) client->this->private)->lk_heal; - ret = rpcsvc_submit_generic (payload->req, payload->rsp, 1, + ret = rpcsvc_submit_generic (payload->req, &payload->rsp, 1, payload->payload, payload->payload_count, payload->iobref); iobuf_unref (payload->iob); @@ -1240,6 +1240,9 @@ gf_barrier_payload (rpcsvc_request_t *req, struct iovec *rsp, { gf_barrier_payload_t *payload = NULL; + if (!rsp) + return NULL; + payload = GF_CALLOC (1, sizeof (*payload),1); if (!payload) return NULL; @@ -1247,7 +1250,7 @@ gf_barrier_payload (rpcsvc_request_t *req, struct iovec *rsp, INIT_LIST_HEAD (&payload->list); payload->req = req; - payload->rsp = rsp; + memcpy (&payload->rsp, rsp, sizeof (struct iovec)); payload->frame = frame; payload->payload = payload_orig; payload->payload_count = payloadcount; diff --git a/xlators/protocol/server/src/server.h b/xlators/protocol/server/src/server.h index 82554aee9..165058ec3 100644 --- a/xlators/protocol/server/src/server.h +++ b/xlators/protocol/server/src/server.h @@ -30,7 +30,7 @@ struct _gf_barrier_payload { rpcsvc_request_t *req; - struct iovec *rsp; + struct iovec rsp; call_frame_t *frame; struct iovec *payload; struct iobref *iobref; |