summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-utils.c
diff options
context:
space:
mode:
authorAvra Sengupta <asengupt@redhat.com>2013-12-04 04:13:41 +0000
committerAvra Sengupta <asengupt@redhat.com>2013-12-10 23:54:41 +0000
commitdbd515195e5177fe34a12102ba2290cfe2bdc388 (patch)
tree4dbc2c77447e1015b674e00c6f48b907f7cd941f /xlators/mgmt/glusterd/src/glusterd-utils.c
parentdb9476c6dd4af75c3f658bc4ee4ce82403eb5fdf (diff)
glusterd/snapshot: Fix Displaying Port, Online Status and Pid for snap vols in volume status
Added a parent_volname member in glusterd_volinfo_ structure to help point the snap vol to the parent volname. Using this to fetch the pidfile location during volume status. Change-Id: I30a16646561394d0f7d16f66abff14c425f31f06 Signed-off-by: Avra Sengupta <asengupt@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index 5592af56b..50d6232ef 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -461,6 +461,8 @@ glusterd_volinfo_new (glusterd_volinfo_t **volinfo)
goto out;
}
+ snprintf (new_volinfo->parent_volname, GLUSTERD_MAX_VOLUME_NAME, "N/A");
+
if (conf)
new_volinfo->snap_max_limit = conf->snap_max_limit;
else
@@ -5016,6 +5018,7 @@ glusterd_add_brick_to_dict (glusterd_volinfo_t *volinfo,
char key[1024] = {0};
char base_key[1024] = {0};
char pidfile[PATH_MAX] = {0};
+ char exp_path[PATH_MAX] = {0};
xlator_t *this = NULL;
glusterd_conf_t *priv = NULL;
@@ -5048,7 +5051,15 @@ glusterd_add_brick_to_dict (glusterd_volinfo_t *volinfo,
if (ret)
goto out;
- GLUSTERD_GET_BRICK_PIDFILE (pidfile, volinfo, brickinfo, priv);
+ if (volinfo->is_snap_volume == _gf_true) {
+ /* Fetching the snap pidfile using parent volname */
+ GLUSTERD_REMOVE_SLASH_FROM_PATH (brickinfo->path, exp_path);
+ snprintf (pidfile, sizeof(pidfile) - 1,
+ "%s/vols/%s/snaps/%s/run/%s-%s.pid", priv->workdir,
+ volinfo->parent_volname, volinfo->volname,
+ brickinfo->hostname, exp_path);
+ } else
+ GLUSTERD_GET_BRICK_PIDFILE (pidfile, volinfo, brickinfo, priv);
brick_online = glusterd_is_service_running (pidfile, &pid);