diff options
| author | Amar Tumballi <amar@gluster.com> | 2010-09-08 03:29:41 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2010-09-08 03:52:15 -0700 | 
| commit | 65ac3fdba1b21a103547d80f4446cfdcaf90139b (patch) | |
| tree | df423ac1cae8f9bb851dac36b02f6d4704ac2147 | |
| parent | 8152690933c0c1168ccc7e79f3e366c3dfa780d8 (diff) | |
glusterd: preserve brick's port, retrive it while starting glusterd
* this solves the problem of having brickinfo->port as 0 when
  when glusterd is restarted while glusterfsd processes are
  running
Signed-off-by: Amar Tumballi <amar@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.gluster.com>
BUG: 1569 (data not available in client when glusterd killed and restarted.)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=1569
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.c | 20 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-store.h | 1 | 
2 files changed, 18 insertions, 3 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-store.c b/xlators/mgmt/glusterd/src/glusterd-store.c index 89208a9fcc7..a709fb200dd 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.c +++ b/xlators/mgmt/glusterd/src/glusterd-store.c @@ -138,10 +138,21 @@ glusterd_store_create_brick (glusterd_volinfo_t *volinfo,          } -        snprintf (buf, sizeof(buf), "hostname=%s\n", brickinfo->hostname); +        snprintf (buf, sizeof(buf), "%s=%s\n", +                  GLUSTERD_STORE_KEY_BRICK_HOSTNAME, brickinfo->hostname);          ret = write (shandle->fd, buf, strlen(buf)); -        snprintf (buf, sizeof(buf), "path=%s\n", brickinfo->path); +        if (ret) +                gf_log ("", GF_LOG_TRACE, "failed to write brick->hostname"); +        snprintf (buf, sizeof(buf), "%s=%s\n", +                  GLUSTERD_STORE_KEY_BRICK_PATH, brickinfo->path); +        ret = write (shandle->fd, buf, strlen(buf)); +        if (ret) +                gf_log ("", GF_LOG_TRACE, "failed to write brick->path"); +        snprintf (buf, sizeof(buf), "%s=%d\n", +                  GLUSTERD_STORE_KEY_BRICK_PORT, brickinfo->port);          ret = write (shandle->fd, buf, strlen(buf)); +        if (ret) +                gf_log ("", GF_LOG_TRACE, "failed to write brick->port");          ret = 0; @@ -869,7 +880,10 @@ glusterd_store_retrieve_bricks (glusterd_volinfo_t *volinfo)                                      strlen (GLUSTERD_STORE_KEY_BRICK_PATH))) {                                  strncpy (brickinfo->path, value,                                           sizeof (brickinfo->path)); -                        }else { +                        } else if (!strncmp (key, GLUSTERD_STORE_KEY_BRICK_PORT, +                                    strlen (GLUSTERD_STORE_KEY_BRICK_PORT))) { +                                gf_string2int (value, &brickinfo->port); +                        } else {                                  gf_log ("", GF_LOG_ERROR, "Unknown key: %s",                                          key);                          } diff --git a/xlators/mgmt/glusterd/src/glusterd-store.h b/xlators/mgmt/glusterd/src/glusterd-store.h index ff426f61791..af05815d390 100644 --- a/xlators/mgmt/glusterd/src/glusterd-store.h +++ b/xlators/mgmt/glusterd/src/glusterd-store.h @@ -52,6 +52,7 @@  #define GLUSTERD_STORE_KEY_BRICK_HOSTNAME "hostname"  #define GLUSTERD_STORE_KEY_BRICK_PATH     "path" +#define GLUSTERD_STORE_KEY_BRICK_PORT     "listen-port"  #define GLUSTERD_STORE_KEY_PEER_UUID      "uuid"  #define GLUSTERD_STORE_KEY_PEER_HOSTNAME  "hostname"  | 
