From 1bfb0a750c6fcd0bbf4d68a1890704f0aefe6337 Mon Sep 17 00:00:00 2001 From: Amar Tumballi Date: Sun, 17 Nov 2019 11:00:50 +0530 Subject: debug/io-stats: add an option to set volume-id 'volume-id' is good to have for a graph for uniquely identifying it. Add it to graph->volume_id while generating volfile itself. This can be further used in many other places. Updates: #763 Change-Id: I80516d62d28a284e8ff4707841570ced97a37e73 Signed-off-by: Amar Tumballi --- xlators/protocol/server/src/server-handshake.c | 31 ++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) (limited to 'xlators/protocol/server') diff --git a/xlators/protocol/server/src/server-handshake.c b/xlators/protocol/server/src/server-handshake.c index 1f347db4f77..dda58b60ca0 100644 --- a/xlators/protocol/server/src/server-handshake.c +++ b/xlators/protocol/server/src/server-handshake.c @@ -409,22 +409,25 @@ server_setvolume(rpcsvc_request_t *req) client_name = "unknown"; } - ret = dict_get_str_sizen(params, "volume-id", &volume_id); - if (!ret && strcmp(xl->graph->volume_id, volume_id)) { - ret = dict_set_str(reply, "ERROR", - "Volume-ID different, possible case " - "of same brick re-used in another volume"); - if (ret < 0) - gf_msg_debug(this->name, 0, "failed to set error msg"); + /* If any value is set, the first element will be non-0. + It would be '0', but not '\0' :-) */ + if (xl->graph->volume_id[0]) { + ret = dict_get_str_sizen(params, "volume-id", &volume_id); + if (!ret && strcmp(xl->graph->volume_id, volume_id)) { + ret = dict_set_str(reply, "ERROR", + "Volume-ID different, possible case " + "of same brick re-used in another volume"); + if (ret < 0) + gf_msg_debug(this->name, 0, "failed to set error msg"); - op_ret = -1; - op_errno = EINVAL; - goto fail; + op_ret = -1; + op_errno = EINVAL; + goto fail; + } + ret = dict_set_str(reply, "volume-id", tmp->volume_id); + if (ret) + gf_msg_debug(this->name, 0, "failed to set 'volume-id'"); } - ret = dict_set_str(reply, "volume-id", tmp->volume_id); - if (ret) - gf_msg_debug(this->name, 0, "failed to set 'volume-id'"); - client = gf_client_get(this, &req->cred, client_uid, subdir_mount); if (client == NULL) { op_ret = -1; -- cgit