diff options
author | Amar Tumballi <amar@gluster.com> | 2011-11-12 22:02:37 +0530 |
---|---|---|
committer | Vijay Bellur <vijay@gluster.com> | 2011-11-16 01:46:50 -0800 |
commit | deac165b27d09e762743b180044c33ce90bbeaef (patch) | |
tree | 5a62ee9abd7e80dce99742b03aa51abd9830f201 /xlators/mgmt/glusterd/src | |
parent | a29ab15988f46fbe98151c37676185de970fb187 (diff) |
mgmt/glusterd: delete volume to have dictionary as context
earlier only DELETE_VOLUME was having volume name as context, where
as all other OPs used to have dictionary
Change-Id: I5bfcc458bff3295374eb4f0b0a31f6134745debd
BUG: 3158
Reviewed-on: http://review.gluster.com/718
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Krishnan Parthasarathi <kp@gluster.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 41 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 13 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.h | 6 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rpc-ops.c | 33 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 23 |
5 files changed, 26 insertions, 90 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index 920bafa5b05..402e4d51189 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -504,12 +504,10 @@ glusterd_req_ctx_create (rpcsvc_request_t *rpc_req, gf_gld_mem_types_t mem_type, glusterd_req_ctx_t **req_ctx_out) { - int ret = -1; - glusterd_req_ctx_t *req_ctx = NULL; - char str[50] = {0,}; - dict_t *dict = NULL; - char volname[GLUSTERD_MAX_VOLUME_NAME] = {0}; - char *dup_volname = NULL; + int ret = -1; + char str[50] = {0,}; + glusterd_req_ctx_t *req_ctx = NULL; + dict_t *dict = NULL; uuid_unparse (uuid, str); gf_log ("glusterd", GF_LOG_INFO, @@ -518,40 +516,23 @@ glusterd_req_ctx_create (rpcsvc_request_t *rpc_req, dict = dict_new (); if (!dict) goto out; - req_ctx = GF_CALLOC (1, sizeof (*req_ctx), mem_type); + req_ctx = GF_CALLOC (1, sizeof (*req_ctx), mem_type); if (!req_ctx) { goto out; } uuid_copy (req_ctx->uuid, uuid); req_ctx->op = op; - if (GD_OP_DELETE_VOLUME == op) { - strncpy (volname, buf_val, buf_len); - dup_volname = gf_strdup (volname); - if (dup_volname) { - ret = dict_set_dynstr (dict, "volname", dup_volname); - if (ret) { - gf_log ("", GF_LOG_WARNING, - "failed to set volume name from payload"); - goto out; - } - } else { - ret = -1; - goto out; - } - } else { - ret = dict_unserialize (buf_val, buf_len, &dict); - - if (ret) { - gf_log ("", GF_LOG_WARNING, - "failed to unserialize the dictionary"); - goto out; - } + ret = dict_unserialize (buf_val, buf_len, &dict); + if (ret) { + gf_log ("", GF_LOG_WARNING, + "failed to unserialize the dictionary"); + goto out; } req_ctx->dict = dict; - req_ctx->req = rpc_req; + req_ctx->req = rpc_req; *req_ctx_out = req_ctx; ret = 0; out: diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index f933bbc37f7..61f3b70a3eb 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -1497,15 +1497,6 @@ glusterd_op_build_payload (dict_t **req) break; case GD_OP_DELETE_VOLUME: - { - glusterd_op_delete_volume_ctx_t *ctx1 = ctx; - ret = dict_set_str (req_dict, "volname", - ctx1->volume_name); - if (ret) - goto out; - } - break; - case GD_OP_START_VOLUME: case GD_OP_STOP_VOLUME: case GD_OP_ADD_BRICK: @@ -3469,6 +3460,7 @@ glusterd_op_free_ctx (glusterd_op_t op, void *ctx) if (ctx) { switch (op) { case GD_OP_CREATE_VOLUME: + case GD_OP_DELETE_VOLUME: case GD_OP_STOP_VOLUME: case GD_OP_ADD_BRICK: case GD_OP_REMOVE_BRICK: @@ -3489,9 +3481,6 @@ glusterd_op_free_ctx (glusterd_op_t op, void *ctx) case GD_OP_STATEDUMP_VOLUME: dict_unref (ctx); break; - case GD_OP_DELETE_VOLUME: - GF_FREE (ctx); - break; default: GF_ASSERT (0); break; diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.h b/xlators/mgmt/glusterd/src/glusterd-op-sm.h index 31551ca430f..e658e6ece79 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.h +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.h @@ -118,12 +118,6 @@ struct glusterd_op_info_ { typedef struct glusterd_op_info_ glusterd_op_info_t; -struct glusterd_op_delete_volume_ctx_ { - char volume_name[GD_VOLUME_NAME_MAX]; -}; - -typedef struct glusterd_op_delete_volume_ctx_ glusterd_op_delete_volume_ctx_t; - struct glusterd_op_log_filename_ctx_ { char volume_name[GD_VOLUME_NAME_MAX]; char brick[GD_VOLUME_NAME_MAX]; diff --git a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c index f6b0908ae9b..d6ec18a3db3 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-rpc-ops.c @@ -1541,19 +1541,11 @@ glusterd3_1_stage_op (call_frame_t *frame, xlator_t *this, glusterd_get_uuid (&req.uuid); req.op = glusterd_op_get_op (); - if (GD_OP_DELETE_VOLUME == req.op) { - ret = dict_get_str (dict, "volname", &req.buf.buf_val); - if (ret) - goto out; - req.buf.buf_len = strlen (req.buf.buf_val); - is_alloc = _gf_false; - } else { - ret = dict_allocate_and_serialize (dict, &req.buf.buf_val, - (size_t *)&req.buf.buf_len); + ret = dict_allocate_and_serialize (dict, &req.buf.buf_val, + (size_t *)&req.buf.buf_len); + if (ret) + goto out; - if (ret) - goto out; - } dummy_frame = create_frame (this, this->ctx->pool); if (!dummy_frame) @@ -1603,19 +1595,10 @@ glusterd3_1_commit_op (call_frame_t *frame, xlator_t *this, glusterd_get_uuid (&req.uuid); req.op = glusterd_op_get_op (); - if (GD_OP_DELETE_VOLUME == req.op) { - ret = dict_get_str (dict, "volname", &req.buf.buf_val); - if (ret) - goto out; - req.buf.buf_len = strlen (req.buf.buf_val); - is_alloc = _gf_false; - } else { - ret = dict_allocate_and_serialize (dict, &req.buf.buf_val, - (size_t *)&req.buf.buf_len); - - if (ret) - goto out; - } + ret = dict_allocate_and_serialize (dict, &req.buf.buf_val, + (size_t *)&req.buf.buf_len); + if (ret) + goto out; dummy_frame = create_frame (this, this->ctx->pool); if (!dummy_frame) diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index 6c3da47ea24..33b9c7f3e26 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -358,12 +358,11 @@ out: int glusterd_handle_cli_delete_volume (rpcsvc_request_t *req) { - int32_t ret = -1; - gf_cli_req cli_req = {{0,}}; - glusterd_op_delete_volume_ctx_t *ctx = NULL; - glusterd_op_t cli_op = GD_OP_DELETE_VOLUME; - char *volname = NULL; - dict_t *dict = NULL; + int32_t ret = -1; + gf_cli_req cli_req = {{0,},}; + glusterd_op_t cli_op = GD_OP_DELETE_VOLUME; + dict_t *dict = NULL; + char *volname = NULL; GF_ASSERT (req); @@ -402,14 +401,7 @@ glusterd_handle_cli_delete_volume (rpcsvc_request_t *req) gf_log ("glusterd", GF_LOG_INFO, "Received delete vol req" "for volume %s", volname); - - ctx = GF_CALLOC (1, sizeof (*ctx), gf_gld_mt_delete_volume_ctx_t); - if (!ctx) - goto out; - - strncpy (ctx->volume_name, volname, GD_VOLUME_NAME_MAX); - - ret = glusterd_op_begin (req, GD_OP_DELETE_VOLUME, ctx); + ret = glusterd_op_begin (req, GD_OP_DELETE_VOLUME, dict); gf_cmd_log ("Volume delete", "on volname: %s %s", volname, ((ret) ? "FAILED" : "SUCCESS")); @@ -423,9 +415,6 @@ out: glusterd_op_sm (); if (ret) { - if (ctx) - GF_FREE (ctx); - ret = glusterd_op_send_cli_response (cli_op, ret, 0, req, NULL, "operation failed"); } |