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;  | 
