diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src')
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-replace-brick.c | 27 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 6 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 22 | 
3 files changed, 39 insertions, 16 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c index 8bfa2d4bdd6..5a98d497137 100644 --- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c +++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c @@ -1390,14 +1390,16 @@ umount:   * after all commit acks are received.   */  static int -rb_update_srcbrick_port (glusterd_brickinfo_t *src_brickinfo, dict_t *rsp_dict, -                         dict_t *req_dict, int32_t replace_op) +rb_update_srcbrick_port (glusterd_volinfo_t *volinfo, +                         glusterd_brickinfo_t *src_brickinfo, +                         dict_t *rsp_dict, dict_t *req_dict, int32_t replace_op)  { -        xlator_t *this            = NULL; -        dict_t   *ctx             = NULL; -        int       ret             = 0; -        int       dict_ret        = 0; -        int       src_port        = 0; +        xlator_t *this                  = NULL; +        dict_t   *ctx                   = NULL; +        int       ret                   = 0; +        int       dict_ret              = 0; +        int       src_port              = 0; +        char      brickname[PATH_MAX]   = {0,};          this = THIS; @@ -1409,8 +1411,15 @@ rb_update_srcbrick_port (glusterd_brickinfo_t *src_brickinfo, dict_t *rsp_dict,                  gf_log ("", GF_LOG_INFO,                          "adding src-brick port no"); +                if (volinfo->transport_type == GF_TRANSPORT_RDMA) { +                        snprintf (brickname, sizeof(brickname), "%s.rdma", +                                  src_brickinfo->path); +                } else +                        snprintf (brickname, sizeof(brickname), "%s", +                                  src_brickinfo->path); +                  src_brickinfo->port = pmap_registry_search (this, -                                      src_brickinfo->path, GF_PMAP_PORT_BRICKSERVER); +                                      brickname, GF_PMAP_PORT_BRICKSERVER);                  if (!src_brickinfo->port &&                      replace_op != GF_REPLACE_OP_COMMIT_FORCE ) {                          gf_log ("", GF_LOG_ERROR, @@ -1645,7 +1654,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)                  goto out;          } -        ret = rb_update_srcbrick_port (src_brickinfo, rsp_dict, +        ret = rb_update_srcbrick_port (volinfo, src_brickinfo, rsp_dict,                                         dict, replace_op);          if (ret)                  goto out; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index d2eab044dc6..fcaa215b578 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -1952,6 +1952,12 @@ glusterd_volume_start_glusterfs (glusterd_volinfo_t  *volinfo,                                    bind_address);          } +        if (volinfo->transport_type == GF_TRANSPORT_RDMA) +                runner_argprintf (&runner, "--volfile-server-transport=rdma"); +        else if (volinfo->transport_type == GF_TRANSPORT_BOTH_TCP_RDMA) +                runner_argprintf (&runner, +                                  "--volfile-server-transport=socket,rdma"); +          if (volinfo->memory_accounting)                  runner_add_arg (&runner, "--mem-accounting"); diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index b55275308e2..cb5d6f832f6 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -2342,12 +2342,13 @@ int  glusterd_clearlocks_get_local_client_ports (glusterd_volinfo_t *volinfo,                                              char **xl_opts)  { -        glusterd_brickinfo_t    *brickinfo      = NULL; -        glusterd_conf_t         *priv           = NULL; -        int                     index           = 0; -        int                     ret             = -1; -        int                     i               = 0; -        int                     port            = 0; +        glusterd_brickinfo_t    *brickinfo          = NULL; +        glusterd_conf_t         *priv               = NULL; +        char                    brickname[PATH_MAX] = {0,}; +        int                     index               = 0; +        int                     ret                 = -1; +        int                     i                   = 0; +        int                     port                = 0;          GF_ASSERT (xl_opts);          if (!xl_opts) { @@ -2364,7 +2365,14 @@ glusterd_clearlocks_get_local_client_ports (glusterd_volinfo_t *volinfo,                  if (uuid_compare (brickinfo->uuid, MY_UUID))                          continue; -                port = pmap_registry_search (THIS, brickinfo->path, +                if (volinfo->transport_type == GF_TRANSPORT_RDMA) { +                        snprintf (brickname, sizeof(brickname), "%s.rdma", +                                  brickinfo->path); +                } else +                        snprintf (brickname, sizeof(brickname), "%s", +                                  brickinfo->path); + +                port = pmap_registry_search (THIS, brickname,                                               GF_PMAP_PORT_BRICKSERVER);                  if (!port) {                          ret = -1;  | 
