mirror of
https://github.com/gluster/glusterfs.git
synced 2026-02-05 15:48:40 +01:00
cli: defer create_frame() (and dict creation) to later stages.
Where possible, defer create_frame() - whenever possible, after command line verification, for example. Change-Id: Id6606e90e7ea6190f30b225c4733b229c519bb2f updates: bz#1193929 Signed-off-by: Yaniv Kaul <ykaul@redhat.com>
This commit is contained in:
committed by
Atin Mukherjee
parent
6bf9637a93
commit
7162c8ad9d
@@ -767,7 +767,7 @@ glfs_volfile_fetch(struct glfs *fs)
|
||||
gf_getspec_req req = {
|
||||
0,
|
||||
};
|
||||
int ret = 0;
|
||||
int ret = -1;
|
||||
call_frame_t *frame = NULL;
|
||||
glusterfs_ctx_t *ctx = NULL;
|
||||
dict_t *dict = NULL;
|
||||
@@ -775,14 +775,11 @@ glfs_volfile_fetch(struct glfs *fs)
|
||||
ctx = fs->ctx;
|
||||
cmd_args = &ctx->cmd_args;
|
||||
|
||||
frame = create_frame(THIS, ctx->pool);
|
||||
|
||||
req.key = cmd_args->volfile_id;
|
||||
req.flags = 0;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -815,6 +812,12 @@ glfs_volfile_fetch(struct glfs *fs)
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = mgmt_submit_request(&req, frame, ctx, &clnt_handshake_prog,
|
||||
GF_HNDSK_GETSPEC, glfs_mgmt_getspec_cbk,
|
||||
(xdrproc_t)xdr_gf_getspec_req);
|
||||
|
||||
@@ -101,10 +101,6 @@ cli_cmd_get_state_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
cli_local_t *local = NULL;
|
||||
char *op_errstr = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_get_state_parse(state, words, wordcount, &options,
|
||||
&op_errstr);
|
||||
|
||||
@@ -120,6 +116,12 @@ cli_cmd_get_state_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GET_STATE];
|
||||
|
||||
@@ -48,10 +48,6 @@ cli_cmd_peer_probe_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_PROBE];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
@@ -77,6 +73,12 @@ cli_cmd_peer_probe_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
}
|
||||
*/
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -127,10 +129,6 @@ cli_cmd_peer_deprobe_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
"want to proceed?";
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DEPROBE];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
|
||||
ret = dict_set_str(dict, "hostname", (char *)words[2]);
|
||||
@@ -162,6 +160,12 @@ cli_cmd_peer_deprobe_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
|
||||
@@ -36,12 +36,6 @@ cli_cmd_snapshot_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_SNAP];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (frame == NULL) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Parses the command entered by the user */
|
||||
ret = cli_cmd_snapshot_parse(words, wordcount, &options, state);
|
||||
if (ret) {
|
||||
@@ -55,6 +49,12 @@ cli_cmd_snapshot_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (frame == NULL) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn)
|
||||
|
||||
@@ -43,25 +43,26 @@ cli_cmd_getspec_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
call_frame_t *frame = NULL;
|
||||
dict_t *dict = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
if (wordcount != 3) {
|
||||
cli_usage_out(word->pattern);
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
ret = dict_set_str(dict, "volid", (char *)words[2]);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GETSPEC];
|
||||
if (proc->fn) {
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
ret = proc->fn(frame, THIS, dict);
|
||||
}
|
||||
|
||||
@@ -74,6 +75,7 @@ out:
|
||||
if (dict)
|
||||
dict_unref(dict);
|
||||
|
||||
CLI_STACK_DESTROY(frame);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -86,25 +88,26 @@ cli_cmd_pmap_b2p_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
call_frame_t *frame = NULL;
|
||||
dict_t *dict = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
if (wordcount != 4) {
|
||||
cli_usage_out(word->pattern);
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
ret = dict_set_str(dict, "brick", (char *)words[3]);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_PMAP_PORTBYBRICK];
|
||||
if (proc->fn) {
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
ret = proc->fn(frame, THIS, dict);
|
||||
}
|
||||
|
||||
@@ -116,6 +119,8 @@ out:
|
||||
|
||||
if (dict)
|
||||
dict_unref(dict);
|
||||
|
||||
CLI_STACK_DESTROY(frame);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -175,6 +180,7 @@ make_seq_dict(int argc, char **argv)
|
||||
{
|
||||
char index[] = "4294967296"; // 1<<32
|
||||
int i = 0;
|
||||
int len;
|
||||
int ret = 0;
|
||||
dict_t *dict = dict_new();
|
||||
|
||||
@@ -182,8 +188,8 @@ make_seq_dict(int argc, char **argv)
|
||||
return NULL;
|
||||
|
||||
for (i = 0; i < argc; i++) {
|
||||
snprintf(index, sizeof(index), "%d", i);
|
||||
ret = dict_set_str(dict, index, argv[i]);
|
||||
len = snprintf(index, sizeof(index), "%d", i);
|
||||
ret = dict_set_strn(dict, index, len, argv[i]);
|
||||
if (ret == -1)
|
||||
break;
|
||||
}
|
||||
@@ -439,6 +445,7 @@ cli_cmd_sys_exec_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
char *tmp = NULL;
|
||||
int ret = -1;
|
||||
int i = -1;
|
||||
int len;
|
||||
int cmd_args_count = 0;
|
||||
int in_cmd_args_count = 0;
|
||||
rpc_clnt_procedure_t *proc = NULL;
|
||||
@@ -451,15 +458,16 @@ cli_cmd_sys_exec_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
command = strtok_r((char *)words[2], " ", &saveptr);
|
||||
if (command == NULL) {
|
||||
gf_log("cli", GF_LOG_ERROR, "Failed to parse command");
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
do {
|
||||
tmp = strtok_r(NULL, " ", &saveptr);
|
||||
if (tmp) {
|
||||
@@ -487,9 +495,9 @@ cli_cmd_sys_exec_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
for (i = 1; i <= cmd_args_count; i++) {
|
||||
in_cmd_args_count++;
|
||||
snprintf(cmd_arg_name, sizeof(cmd_arg_name), "cmd_arg_%d",
|
||||
in_cmd_args_count);
|
||||
ret = dict_set_str(dict, cmd_arg_name, (char *)words[2 + i]);
|
||||
len = snprintf(cmd_arg_name, sizeof(cmd_arg_name), "cmd_arg_%d",
|
||||
in_cmd_args_count);
|
||||
ret = dict_set_strn(dict, cmd_arg_name, len, (char *)words[2 + i]);
|
||||
if (ret) {
|
||||
gf_log("", GF_LOG_ERROR, "Unable to set %s in dict", cmd_arg_name);
|
||||
goto out;
|
||||
|
||||
@@ -65,10 +65,6 @@ cli_cmd_volume_info_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GET_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if ((wordcount == 2) || (wordcount == 3 && !strcmp(words[2], "all"))) {
|
||||
ctx.flags = GF_CLI_GET_NEXT_VOLUME;
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GET_NEXT_VOLUME];
|
||||
@@ -91,6 +87,10 @@ cli_cmd_volume_info_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
if (!local)
|
||||
goto out;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
local->get_vol.flags = ctx.flags;
|
||||
if (ctx.volname)
|
||||
local->get_vol.volname = gf_strdup(ctx.volname);
|
||||
@@ -216,10 +216,6 @@ cli_cmd_volume_create_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_CREATE_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_create_parse(state, words, wordcount, &options,
|
||||
&bricks);
|
||||
|
||||
@@ -245,6 +241,12 @@ cli_cmd_volume_create_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
}
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -287,14 +289,6 @@ cli_cmd_volume_delete_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
"Do you want to continue?";
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DELETE_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
if (wordcount != 3) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
@@ -303,6 +297,10 @@ cli_cmd_volume_delete_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
volname = (char *)words[2];
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
ret = dict_set_str(dict, "volname", volname);
|
||||
if (ret) {
|
||||
gf_log(THIS->name, GF_LOG_WARNING, "dict set failed");
|
||||
@@ -324,6 +322,12 @@ cli_cmd_volume_delete_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -359,30 +363,15 @@ cli_cmd_volume_start_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
int flags = 0;
|
||||
cli_local_t *local = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount < 3 || wordcount > 4) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!words[2])
|
||||
goto out;
|
||||
|
||||
ret = dict_set_str(dict, "volname", (char *)words[2]);
|
||||
if (ret) {
|
||||
gf_log(THIS->name, GF_LOG_ERROR, "dict set failed");
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (wordcount == 4) {
|
||||
if (!strcmp("force", words[3])) {
|
||||
flags |= GF_CLI_FLAG_OP_FORCE;
|
||||
@@ -393,6 +382,18 @@ cli_cmd_volume_start_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = dict_set_str(dict, "volname", (char *)words[2]);
|
||||
if (ret) {
|
||||
gf_log(THIS->name, GF_LOG_ERROR, "dict set failed");
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = dict_set_int32(dict, "flags", flags);
|
||||
if (ret) {
|
||||
gf_log(THIS->name, GF_LOG_ERROR, "dict set failed");
|
||||
@@ -401,6 +402,12 @@ cli_cmd_volume_start_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_START_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -487,10 +494,6 @@ cli_cmd_volume_stop_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
"Stopping volume will make its data inaccessible. "
|
||||
"Do you want to continue?";
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount < 3 || wordcount > 4) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
@@ -541,6 +544,12 @@ cli_cmd_volume_stop_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_STOP_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -577,20 +586,16 @@ cli_cmd_volume_rename_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
int sent = 0;
|
||||
int parse_error = 0;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
if (wordcount != 4) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
dict = dict_new();
|
||||
if (!dict)
|
||||
goto out;
|
||||
|
||||
ret = dict_set_str(dict, "old-volname", (char *)words[2]);
|
||||
|
||||
if (ret)
|
||||
@@ -604,6 +609,11 @@ cli_cmd_volume_rename_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_RENAME_VOLUME];
|
||||
|
||||
if (proc->fn) {
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
ret = proc->fn(frame, THIS, dict);
|
||||
}
|
||||
|
||||
@@ -642,10 +652,6 @@ cli_cmd_volume_defrag_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
#endif
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_defrag_parse(words, wordcount, &dict);
|
||||
|
||||
if (ret) {
|
||||
@@ -655,6 +661,12 @@ cli_cmd_volume_defrag_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_DEFRAG_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, dict);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -703,10 +715,6 @@ cli_cmd_volume_reset_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_RESET_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_reset_parse(words, wordcount, &options);
|
||||
if (ret) {
|
||||
cli_usage_out(word->pattern);
|
||||
@@ -714,6 +722,12 @@ cli_cmd_volume_reset_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -818,10 +832,6 @@ cli_cmd_volume_set_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_SET_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_set_parse(state, words, wordcount, &options,
|
||||
&op_errstr);
|
||||
if (ret) {
|
||||
@@ -835,6 +845,12 @@ cli_cmd_volume_set_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -1042,10 +1058,6 @@ cli_cmd_volume_add_brick_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
"filesystem operations on the volume after the change. Do you "
|
||||
"really want to continue with 'stripe' count option ? ";
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_add_brick_parse(state, words, wordcount, &options, 0);
|
||||
if (ret) {
|
||||
cli_usage_out(word->pattern);
|
||||
@@ -1090,6 +1102,12 @@ cli_cmd_volume_add_brick_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_ADD_BRICK];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -1291,12 +1309,6 @@ cli_cmd_quota_handle_list_all(const char **words, dict_t *options)
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
volname_dup = gf_strdup(volname);
|
||||
if (!volname_dup) {
|
||||
ret = -1;
|
||||
@@ -1328,6 +1340,12 @@ cli_cmd_quota_handle_list_all(const char **words, dict_t *options)
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, xdata);
|
||||
proc = &cli_quotad_clnt.proctable[GF_AGGREGATOR_GETLIMIT];
|
||||
|
||||
@@ -1740,10 +1758,6 @@ cli_cmd_volume_remove_brick_cbk(struct cli_state *state,
|
||||
int32_t command = GF_OP_CMD_NONE;
|
||||
char *question = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_remove_brick_parse(state, words, wordcount, &options,
|
||||
&need_question, &brick_count,
|
||||
&command);
|
||||
@@ -1809,6 +1823,12 @@ cli_cmd_volume_remove_brick_cbk(struct cli_state *state,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_REMOVE_BRICK];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -1855,10 +1875,6 @@ cli_cmd_volume_reset_brick_cbk(struct cli_state *state,
|
||||
#endif
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_RESET_BRICK];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_reset_brick_parse(words, wordcount, &options);
|
||||
|
||||
if (ret) {
|
||||
@@ -1877,6 +1893,12 @@ cli_cmd_volume_reset_brick_cbk(struct cli_state *state,
|
||||
}
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -1923,10 +1945,6 @@ cli_cmd_volume_replace_brick_cbk(struct cli_state *state,
|
||||
#endif
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_REPLACE_BRICK];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
ret = cli_cmd_volume_replace_brick_parse(words, wordcount, &options);
|
||||
|
||||
if (ret) {
|
||||
@@ -1935,6 +1953,12 @@ cli_cmd_volume_replace_brick_cbk(struct cli_state *state,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -2039,6 +2063,10 @@ cli_cmd_log_rotate_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LOG_ROTATE];
|
||||
|
||||
ret = cli_cmd_log_rotate_parse(words, wordcount, &options);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
gf_log(THIS->name, GF_LOG_ERROR, "failed to create frame");
|
||||
@@ -2046,10 +2074,6 @@ cli_cmd_log_rotate_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = cli_cmd_log_rotate_parse(words, wordcount, &options);
|
||||
if (ret)
|
||||
goto out;
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -2151,12 +2175,6 @@ cli_cmd_volume_gsync_set_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GSYNC_SET];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (frame == NULL) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = cli_cmd_gsync_set_parse(words, wordcount, &options, &errstr);
|
||||
if (ret) {
|
||||
if (errstr) {
|
||||
@@ -2169,6 +2187,12 @@ cli_cmd_volume_gsync_set_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (frame == NULL) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn)
|
||||
@@ -2615,9 +2639,6 @@ cli_cmd_volume_heal_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
int heal_op = 0;
|
||||
|
||||
this = THIS;
|
||||
frame = create_frame(this, this->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount < 3) {
|
||||
cli_usage_out(word->pattern);
|
||||
@@ -2644,6 +2665,12 @@ cli_cmd_volume_heal_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_HEAL_VOLUME];
|
||||
|
||||
frame = create_frame(this, this->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -2678,10 +2705,6 @@ cli_cmd_volume_statedump_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
int parse_error = 0;
|
||||
cli_local_t *local = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount < 3) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
@@ -2707,6 +2730,12 @@ cli_cmd_volume_statedump_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_STATEDUMP_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -2734,12 +2763,11 @@ cli_cmd_volume_list_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
rpc_clnt_procedure_t *proc = NULL;
|
||||
int sent = 0;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_LIST_VOLUME];
|
||||
if (proc->fn) {
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
ret = proc->fn(frame, THIS, NULL);
|
||||
}
|
||||
|
||||
@@ -2768,10 +2796,6 @@ cli_cmd_volume_clearlocks_cbk(struct cli_state *state,
|
||||
int parse_error = 0;
|
||||
cli_local_t *local = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount < 7 || wordcount > 8) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
@@ -2798,6 +2822,12 @@ cli_cmd_volume_clearlocks_cbk(struct cli_state *state,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_CLRLOCKS_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn) {
|
||||
@@ -2828,10 +2858,6 @@ cli_cmd_volume_barrier_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
int parse_error = 0;
|
||||
cli_local_t *local = NULL;
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
if (wordcount != 4) {
|
||||
cli_usage_out(word->pattern);
|
||||
parse_error = 1;
|
||||
@@ -2853,6 +2879,12 @@ cli_cmd_volume_barrier_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_BARRIER_VOLUME];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn)
|
||||
@@ -2887,10 +2919,6 @@ cli_cmd_volume_getopt_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
goto out;
|
||||
}
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
options = dict_new();
|
||||
if (!options)
|
||||
goto out;
|
||||
@@ -2905,6 +2933,12 @@ cli_cmd_volume_getopt_cbk(struct cli_state *state, struct cli_cmd_word *word,
|
||||
|
||||
proc = &cli_rpc_prog->proctable[GLUSTER_CLI_GET_VOL_OPT];
|
||||
|
||||
frame = create_frame(THIS, THIS->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
CLI_LOCAL_INIT(local, words, frame, options);
|
||||
|
||||
if (proc->fn)
|
||||
|
||||
@@ -75,10 +75,6 @@ send_brick_req(xlator_t *this, struct rpc_clnt *rpc, char *path, int op)
|
||||
if (!iobref)
|
||||
goto out;
|
||||
|
||||
frame = create_frame(this, this->ctx->pool);
|
||||
if (!frame)
|
||||
goto out;
|
||||
|
||||
iobref_add(iobref, iobuf);
|
||||
|
||||
iov.iov_base = iobuf->ptr;
|
||||
@@ -98,6 +94,12 @@ send_brick_req(xlator_t *this, struct rpc_clnt *rpc, char *path, int op)
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
frame = create_frame(this, this->ctx->pool);
|
||||
if (!frame) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Send the msg */
|
||||
ret = rpc_clnt_submit(rpc, &gf_attach_prog, op, my_callback, &iov, 1, NULL,
|
||||
0, iobref, frame, NULL, 0, NULL, 0, NULL);
|
||||
|
||||
Reference in New Issue
Block a user