summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmar Tumballi <amar@gluster.com>2010-09-08 03:29:41 +0000
committerVijay Bellur <vijay@dev.gluster.com>2010-09-08 03:52:15 -0700
commit65ac3fdba1b21a103547d80f4446cfdcaf90139b (patch)
treedf423ac1cae8f9bb851dac36b02f6d4704ac2147
parent8152690933c0c1168ccc7e79f3e366c3dfa780d8 (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.c20
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-store.h1
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"