diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handler.c | 5 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-handshake.c | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-op-sm.c | 39 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-replace-brick.c | 24 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 19 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.h | 2 | 
6 files changed, 45 insertions, 46 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-handler.c b/xlators/mgmt/glusterd/src/glusterd-handler.c index bfec8d46..ec717ac2 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handler.c +++ b/xlators/mgmt/glusterd/src/glusterd-handler.c @@ -736,9 +736,10 @@ glusterd_handle_cli_probe (rpcsvc_request_t *req)          gf_log ("glusterd", GF_LOG_INFO, "Received CLI probe req %s %d",                  cli_req.hostname, cli_req.port); -        if (!(ret = glusterd_is_local_addr(cli_req.hostname))) { +        if (glusterd_is_local_addr(cli_req.hostname)) {                  glusterd_xfer_cli_probe_resp (req, 0, GF_PROBE_LOCALHOST, NULL,                                                cli_req.hostname, cli_req.port); +                ret = 0;                  goto out;          } @@ -1440,7 +1441,7 @@ glusterd_handle_sync_volume (rpcsvc_request_t *req)          gf_log (this->name, GF_LOG_INFO, "Received volume sync req "                  "for volume %s", (flags & GF_CLI_SYNC_ALL) ? "all" : volname); -        if (!glusterd_is_local_addr (hostname)) { +        if (glusterd_is_local_addr (hostname)) {                  ret = -1;                  snprintf (msg, sizeof (msg), "sync from localhost"                            " not allowed"); diff --git a/xlators/mgmt/glusterd/src/glusterd-handshake.c b/xlators/mgmt/glusterd/src/glusterd-handshake.c index adbb40c4..6a273df5 100644 --- a/xlators/mgmt/glusterd/src/glusterd-handshake.c +++ b/xlators/mgmt/glusterd/src/glusterd-handshake.c @@ -146,7 +146,7 @@ server_getspec (rpcsvc_request_t *req)          *tmp = '\0';          /* we trust the local admin */ -        if (!glusterd_is_local_addr (addrstr)) { +        if (glusterd_is_local_addr (addrstr)) {                  ret = build_volfile_path (volume, filename,                                            sizeof (filename), diff --git a/xlators/mgmt/glusterd/src/glusterd-op-sm.c b/xlators/mgmt/glusterd/src/glusterd-op-sm.c index ef262b85..b5026193 100644 --- a/xlators/mgmt/glusterd/src/glusterd-op-sm.c +++ b/xlators/mgmt/glusterd/src/glusterd-op-sm.c @@ -763,25 +763,7 @@ glusterd_op_stage_sync_volume (dict_t *dict, char **op_errstr)                  goto out;          } -        ret = glusterd_is_local_addr (hostname); -        if (ret) { -                ret = glusterd_friend_find (NULL, hostname, &peerinfo); -                if (ret) { -                        snprintf (msg, sizeof (msg), "%s, is not a friend", -                                  hostname); -                        *op_errstr = gf_strdup (msg); -                        goto out; -                } - -                if (!peerinfo->connected) { -                        snprintf (msg, sizeof (msg), "%s, is not connected at " -                                  "the moment", hostname); -                        *op_errstr = gf_strdup (msg); -                        ret = -1; -                        goto out; -                } -        } else { - +        if (glusterd_is_local_addr (hostname)) {                  //volname is not present in case of sync all                  ret = dict_get_str (dict, "volname", &volname);                  if (!ret) { @@ -800,6 +782,23 @@ glusterd_op_stage_sync_volume (dict_t *dict, char **op_errstr)                  } else {                          ret = 0;                  } +         } else { +                ret = glusterd_friend_find (NULL, hostname, &peerinfo); +                if (ret) { +                        snprintf (msg, sizeof (msg), "%s, is not a friend", +                                  hostname); +                        *op_errstr = gf_strdup (msg); +                        goto out; +                } + +                if (!peerinfo->connected) { +                        snprintf (msg, sizeof (msg), "%s, is not connected at " +                                  "the moment", hostname); +                        *op_errstr = gf_strdup (msg); +                        ret = -1; +                        goto out; +                } +          }  out: @@ -1654,7 +1653,7 @@ glusterd_op_sync_volume (dict_t *dict, char **op_errstr,                  goto out;          } -        if (glusterd_is_local_addr (hostname)) { +        if (!glusterd_is_local_addr (hostname)) {                  ret = 0;                  goto out;          } diff --git a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c index a91c2ee1..8bd9a152 100644 --- a/xlators/mgmt/glusterd/src/glusterd-replace-brick.c +++ b/xlators/mgmt/glusterd/src/glusterd-replace-brick.c @@ -431,7 +431,7 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,                  }          } -        if (!glusterd_is_local_addr (src_brickinfo->hostname)) { +        if (glusterd_is_local_addr (src_brickinfo->hostname)) {                  gf_log (this->name, GF_LOG_DEBUG,                          "I AM THE SOURCE HOST");                  if (src_brickinfo->port && rsp_dict) { @@ -510,7 +510,7 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,         }          if (!glusterd_is_rb_ongoing (volinfo) && -            !glusterd_is_local_addr (host)) { +            glusterd_is_local_addr (host)) {                  ret = glusterd_brick_create_path (host, path,                                                    volinfo->volume_id,                                                    op_errstr); @@ -518,7 +518,7 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,                          goto out;          } -        if (glusterd_is_local_addr (host)) { +        if (!glusterd_is_local_addr (host)) {                  ret = glusterd_friend_find (NULL, host, &peerinfo);                  if (ret) {                          snprintf (msg, sizeof (msg), "%s, is not a friend", @@ -545,7 +545,7 @@ glusterd_op_stage_replace_brick (dict_t *dict, char **op_errstr,          }          if (replace_op == GF_REPLACE_OP_START && -            !glusterd_is_local_addr (volinfo->rep_brick.dst_brick->hostname)) { +            glusterd_is_local_addr (volinfo->rep_brick.dst_brick->hostname)) {                  port = pmap_registry_alloc (THIS);                  if (!port) {                          gf_log (THIS->name, GF_LOG_CRITICAL, @@ -1406,7 +1406,7 @@ rb_update_srcbrick_port (glusterd_brickinfo_t *src_brickinfo, dict_t *rsp_dict,          if (src_port)                  src_brickinfo->port = src_port; -        if (!glusterd_is_local_addr (src_brickinfo->hostname)) { +        if (glusterd_is_local_addr (src_brickinfo->hostname)) {                  gf_log ("", GF_LOG_INFO,                          "adding src-brick port no"); @@ -1460,7 +1460,7 @@ rb_update_dstbrick_port (glusterd_brickinfo_t *dst_brickinfo, dict_t *rsp_dict,                  dst_brickinfo->port = dst_port; -        if (!glusterd_is_local_addr (dst_brickinfo->hostname)) { +        if (glusterd_is_local_addr (dst_brickinfo->hostname)) {                  gf_log ("", GF_LOG_INFO,                          "adding dst-brick port no"); @@ -1668,7 +1668,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)                          uuid_parse (task_id_str, volinfo->rep_brick.rb_id);                  } -                if (!glusterd_is_local_addr (dst_brickinfo->hostname)) { +                if (glusterd_is_local_addr (dst_brickinfo->hostname)) {                          gf_log (this->name, GF_LOG_INFO,                                  "I AM THE DESTINATION HOST");                          if (!glusterd_is_rb_paused (volinfo)) { @@ -1688,7 +1688,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)  		} -		if (!glusterd_is_local_addr (src_brickinfo->hostname)) { +		if (glusterd_is_local_addr (src_brickinfo->hostname)) {  		        ret = rb_src_brick_restart (volinfo, src_brickinfo,  				                    1);  		        if (ret) { @@ -1698,7 +1698,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)  			}  		} -		if (!glusterd_is_local_addr (dst_brickinfo->hostname)) { +		if (glusterd_is_local_addr (dst_brickinfo->hostname)) {  			gf_log (this->name, GF_LOG_INFO,  				"adding dst-brick port no"); @@ -1729,7 +1729,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)                  /* fall through */          case GF_REPLACE_OP_COMMIT_FORCE:          { -                if (!glusterd_is_local_addr (dst_brickinfo->hostname)) { +                if (glusterd_is_local_addr (dst_brickinfo->hostname)) {                          gf_log (this->name, GF_LOG_DEBUG,                                  "I AM THE DESTINATION HOST");                          ret = rb_kill_destination_brick (volinfo, @@ -1810,7 +1810,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)                          }                  } -                if (!glusterd_is_local_addr (src_brickinfo->hostname)) { +                if (glusterd_is_local_addr (src_brickinfo->hostname)) {                          ret = rb_src_brick_restart (volinfo, src_brickinfo,                                                      0);                          if (ret) { @@ -1821,7 +1821,7 @@ glusterd_op_replace_brick (dict_t *dict, dict_t *rsp_dict)                          }                  } -                if (!glusterd_is_local_addr (dst_brickinfo->hostname)) { +                if (glusterd_is_local_addr (dst_brickinfo->hostname)) {                          gf_log (this->name, GF_LOG_INFO,                                  "I AM THE DESTINATION HOST");                          ret = rb_kill_destination_brick (volinfo, dst_brickinfo); diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index d093301c..b68ba252 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -191,15 +191,13 @@ get_ip_from_addrinfo (struct addrinfo *addr, char **ip)          return *ip;  } -/*TODO:FIXME: The function is expected to return a "yes/no" result. -              change return type to bool.*/ -int32_t +gf_boolean_t  glusterd_is_local_addr (char *hostname)  {          int32_t         ret = -1;          struct          addrinfo *result = NULL;          struct          addrinfo *res = NULL; -        int32_t         found = 0; +        gf_boolean_t    found = _gf_false;          int             sd = -1;          char            *ip = NULL;          xlator_t        *this = NULL; @@ -244,7 +242,7 @@ out:          if (!found)                  gf_log (this->name, GF_LOG_DEBUG, "%s is not local", hostname); -        return !found; +        return found;  }  int32_t @@ -4060,7 +4058,7 @@ glusterd_get_brickinfo (xlator_t *this, const char *brickname, int port,          list_for_each_entry (volinfo, &priv->volumes, vol_list) {                  list_for_each_entry (tmpbrkinfo, &volinfo->bricks,                                       brick_list) { -                        if (localhost && glusterd_is_local_addr (tmpbrkinfo->hostname)) +                        if (localhost && !glusterd_is_local_addr (tmpbrkinfo->hostname))                                  continue;                          if (!strcmp(tmpbrkinfo->path, brickname) &&                              (tmpbrkinfo->port == port)) { @@ -4725,11 +4723,12 @@ glusterd_hostname_to_uuid (char *hostname, uuid_t uuid)          ret = glusterd_friend_find_by_hostname (hostname, &peerinfo);          if (ret) { -                ret = glusterd_is_local_addr (hostname); -                if (ret) -                        goto out; -                else +                if (glusterd_is_local_addr (hostname)) {                          uuid_copy (uuid, MY_UUID); +                        ret = 0; +                } else { +                        goto out; +                }          } else {                  uuid_copy (uuid, peerinfo->uuid);          } diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index e5e6123c..ded299af 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -148,7 +148,7 @@ glusterd_volume_brickinfo_get_by_brick (char *brick,                                          glusterd_volinfo_t *volinfo,                                          glusterd_brickinfo_t **brickinfo); -int32_t +gf_boolean_t  glusterd_is_local_addr (char *hostname);  int32_t  | 
