summaryrefslogtreecommitdiffstats
path: root/rpc/block_svc_routines.c
diff options
context:
space:
mode:
Diffstat (limited to 'rpc/block_svc_routines.c')
-rw-r--r--rpc/block_svc_routines.c143
1 files changed, 121 insertions, 22 deletions
diff --git a/rpc/block_svc_routines.c b/rpc/block_svc_routines.c
index d47a841..51b56ec 100644
--- a/rpc/block_svc_routines.c
+++ b/rpc/block_svc_routines.c
@@ -363,7 +363,7 @@ glusterBlockCallRPC_1(char *host, void *cobj,
int ret = -1;
int sockfd;
int errsv = 0;
- blockResponse *reply = NULL;
+ blockResponse reply = {0,};
struct sockaddr_in *sain = NULL;
@@ -386,8 +386,7 @@ glusterBlockCallRPC_1(char *host, void *cobj,
strcpy(((blockCreate *)cobj)->ipaddr, host);
*rpc_sent = TRUE;
- reply = block_create_1((blockCreate *)cobj, clnt);
- if (!reply) {
+ if (block_create_1((blockCreate *)cobj, &reply, clnt) != RPC_SUCCESS) {
LOG("mgmt", GB_LOG_ERROR, "%son host %s",
clnt_sperror(clnt, "block remote create failed"), host);
goto out;
@@ -395,8 +394,7 @@ glusterBlockCallRPC_1(char *host, void *cobj,
break;
case DELETE_SRV:
*rpc_sent = TRUE;
- reply = block_delete_1((blockDelete *)cobj, clnt);
- if (!reply) {
+ if (block_delete_1((blockDelete *)cobj, &reply, clnt) != RPC_SUCCESS) {
LOG("mgmt", GB_LOG_ERROR, "%son host %s",
clnt_sperror(clnt, "block remote delete failed"), host);
goto out;
@@ -404,8 +402,7 @@ glusterBlockCallRPC_1(char *host, void *cobj,
break;
case MODIFY_SRV:
*rpc_sent = TRUE;
- reply = block_modify_1((blockModify *)cobj, clnt);
- if (!reply) {
+ if (block_modify_1((blockModify *)cobj, &reply, clnt) != RPC_SUCCESS) {
LOG("mgmt", GB_LOG_ERROR, "%son host %s",
clnt_sperror(clnt, "block remote modify failed"), host);
goto out;
@@ -417,16 +414,15 @@ glusterBlockCallRPC_1(char *host, void *cobj,
goto out;
}
- if (reply) {
- if (GB_STRDUP(*out, reply->out) < 0) {
- goto out;
- }
- ret = reply->exit;
+ if (GB_STRDUP(*out, reply.out) < 0) {
+ goto out;
}
+ ret = reply.exit;
out:
- if (clnt && reply) {
- if (!clnt_freeres(clnt, (xdrproc_t)xdr_blockResponse, (char *)reply)) {
+ if (clnt) {
+ if (reply.out && !clnt_freeres(clnt, (xdrproc_t)xdr_blockResponse,
+ (char *)&reply)) {
LOG("mgmt", GB_LOG_ERROR, "%s",
clnt_sperror(clnt, "clnt_freeres failed"));
@@ -1467,7 +1463,7 @@ blockModifyCliFormatResponse (blockModifyCli *blk, struct blockModify *mobj,
}
blockResponse *
-block_modify_cli_1_svc(blockModifyCli *blk, struct svc_req *rqstp)
+block_modify_cli_1_svc_st(blockModifyCli *blk, struct svc_req *rqstp)
{
int ret = -1;
static blockModify mobj = {0};
@@ -1781,7 +1777,7 @@ blockCreateCliFormatResponse(struct glfs *glfs, blockCreateCli *blk,
}
blockResponse *
-block_create_cli_1_svc(blockCreateCli *blk, struct svc_req *rqstp)
+block_create_cli_1_svc_st(blockCreateCli *blk, struct svc_req *rqstp)
{
int errCode = -1;
uuid_t uuid;
@@ -2048,7 +2044,7 @@ out:
blockResponse *
-block_create_1_svc(blockCreate *blk, struct svc_req *rqstp)
+block_create_1_svc_st(blockCreate *blk, struct svc_req *rqstp)
{
char *tmp = NULL;
char *backstore = NULL;
@@ -2276,7 +2272,7 @@ blockDeleteCliFormatResponse(blockDeleteCli *blk, int errCode, char *errMsg,
}
blockResponse *
-block_delete_cli_1_svc(blockDeleteCli *blk, struct svc_req *rqstp)
+block_delete_cli_1_svc_st(blockDeleteCli *blk, struct svc_req *rqstp)
{
blockRemoteDeleteResp *savereply = NULL;
MetaInfo *info = NULL;
@@ -2377,7 +2373,7 @@ block_delete_cli_1_svc(blockDeleteCli *blk, struct svc_req *rqstp)
blockResponse *
-block_delete_1_svc(blockDelete *blk, struct svc_req *rqstp)
+block_delete_1_svc_st(blockDelete *blk, struct svc_req *rqstp)
{
int ret;
char *iqn = NULL;
@@ -2445,7 +2441,7 @@ block_delete_1_svc(blockDelete *blk, struct svc_req *rqstp)
blockResponse *
-block_modify_1_svc(blockModify *blk, struct svc_req *rqstp)
+block_modify_1_svc_st(blockModify *blk, struct svc_req *rqstp)
{
int ret;
char *authattr = NULL;
@@ -2570,7 +2566,7 @@ block_modify_1_svc(blockModify *blk, struct svc_req *rqstp)
blockResponse *
-block_list_cli_1_svc(blockListCli *blk, struct svc_req *rqstp)
+block_list_cli_1_svc_st(blockListCli *blk, struct svc_req *rqstp)
{
blockResponse *reply;
struct glfs *glfs;
@@ -2815,7 +2811,7 @@ blockInfoCliFormatResponse(blockInfoCli *blk, int errCode,
}
blockResponse *
-block_info_cli_1_svc(blockInfoCli *blk, struct svc_req *rqstp)
+block_info_cli_1_svc_st(blockInfoCli *blk, struct svc_req *rqstp)
{
blockResponse *reply;
struct glfs *glfs;
@@ -2884,3 +2880,106 @@ block_info_cli_1_svc(blockInfoCli *blk, struct svc_req *rqstp)
return reply;
}
+
+
+bool_t
+block_create_1_svc(blockCreate *blk, blockResponse *reply, struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(create, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_delete_1_svc(blockDelete *blk, blockResponse *reply, struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(delete, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_modify_1_svc(blockModify *blk, blockResponse *reply, struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(modify, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_create_cli_1_svc(blockCreateCli *blk, blockResponse *reply,
+ struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(create_cli, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_modify_cli_1_svc(blockModifyCli *blk, blockResponse *reply,
+ struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(modify_cli, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_list_cli_1_svc(blockListCli *blk, blockResponse *reply,
+ struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(list_cli, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_info_cli_1_svc(blockInfoCli *blk, blockResponse *reply,
+ struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(info_cli, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+bool_t
+block_delete_cli_1_svc(blockDeleteCli *blk, blockResponse *reply,
+ struct svc_req *rqstp)
+{
+ int ret;
+
+ GB_RPC_CALL(delete_cli, blk, reply, rqstp, ret);
+ return ret;
+}
+
+
+int
+gluster_block_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result)
+{
+ xdr_free (xdr_result, result);
+
+ return 1;
+}
+
+
+int
+gluster_block_cli_1_freeresult (SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result)
+{
+ xdr_free (xdr_result, result);
+
+ return 1;
+}