diff options
-rw-r--r-- | rpc/rpc-lib/src/protocol-common.h | 2 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 37 |
2 files changed, 19 insertions, 20 deletions
diff --git a/rpc/rpc-lib/src/protocol-common.h b/rpc/rpc-lib/src/protocol-common.h index 64723420445..c26cb6966c7 100644 --- a/rpc/rpc-lib/src/protocol-common.h +++ b/rpc/rpc-lib/src/protocol-common.h @@ -370,6 +370,8 @@ typedef enum gf_getspec_flags_type gf_getspec_flags_type; #define GD_MGMT_HNDSK_VERSION 1 #define GD_VOLUME_NAME_MAX 256 /* Maximum size of volume name */ +#define GD_VOLUME_NAME_MAX_TIER (GD_VOLUME_NAME_MAX + 5) /*+5 needed for '-hot + and '-cold' suffixes*/ #define GLUSTER_PROCESS_UUID_FMT "CTX_ID:%s-GRAPH_ID:%d-PID:%d-HOST:%s-PC_NAME:%s-RECON_NO:%s" #endif /* !_PROTOCOL_COMMON_H */ diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 511e24f02f6..63a41802b67 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -1875,6 +1875,8 @@ brick_graph_add_changetimerecorder (volgen_graph_t *graph, xl = volgen_graph_add (graph, "features/changetimerecorder", volinfo->volname); + if (!xl) + goto out; ret = xlator_set_option (xl, "db-type", "sqlite3"); @@ -3022,7 +3024,10 @@ end_sethelp_xml_doc (xmlTextWriterPtr writer) int init_sethelp_xml_doc (xmlTextWriterPtr *writer, xmlBufferPtr *buf) { - int ret; + int ret = -1; + + if (!writer || !buf) + goto out; *buf = xmlBufferCreateSize (8192); if (buf == NULL) { @@ -3997,7 +4002,7 @@ volume_volgen_graph_build_clusters (volgen_graph_t *graph, int clusters = 0; int dist_count = 0; int ret = -1; - char tmp_volname[GD_VOLUME_NAME_MAX] = {0, }; + char tmp_volname[GD_VOLUME_NAME_MAX_TIER] = {0, }; if (!volinfo->dist_leaf_count) goto out; @@ -4069,7 +4074,7 @@ build_distribute: } if (volinfo->tier_info.hot_brick_count) { strncpy (tmp_volname, volinfo->volname, - strlen (volinfo->volname)); + GD_VOLUME_NAME_MAX - 1); if (volinfo->tier_info.cur_tier_hot) strcat (volinfo->volname, "-hot"); else @@ -4869,13 +4874,12 @@ nfs_option_handler (volgen_graph_t *graph, xl = first_of (graph); -/* if (vme->type == GLOBAL_DOC || vme->type == GLOBAL_NO_DOC) { - - ret = xlator_set_option (xl, vme->key, vme->value); - }*/ if (!volinfo || (volinfo->volname[0] == '\0')) return 0; + if (!vme || (vme->option[0] == '\0')) + return 0; + if (! strcmp (vme->option, "!rpc-auth.addr.*.allow")) { ret = gf_asprintf (&aa, "rpc-auth.addr.%s.allow", volinfo->volname); @@ -5020,19 +5024,6 @@ nfs_option_handler (volgen_graph_t *graph, } - /*key = strchr (vme->key, '.') + 1; - - for (trav = xl->children; trav; trav = trav->next) { - ret = gf_asprintf (&aa, "auth.addr.%s.%s", trav->xlator->name, - key); - if (ret != -1) { - ret = xlator_set_option (xl, aa, vme->value); - GF_FREE (aa); - } - if (ret) - return -1; - }*/ - return 0; } @@ -5314,6 +5305,9 @@ build_rebalance_volfile (glusterd_volinfo_t *volinfo, char *filepath, return -1; ret = volgen_graph_build_clients (&graph, volinfo, set_dict, NULL); + if (ret) + goto out; + if (volinfo->type == GF_CLUSTER_TYPE_TIER) ret = volume_volgen_graph_build_clusters_tier (&graph, volinfo, _gf_false); @@ -5321,6 +5315,9 @@ build_rebalance_volfile (glusterd_volinfo_t *volinfo, char *filepath, ret = volume_volgen_graph_build_clusters (&graph, volinfo, _gf_false); + if (ret) + goto out; + xl = volgen_graph_add_as (&graph, "debug/io-stats", volinfo->volname); if (!xl) { ret = -1; |