From dbd515195e5177fe34a12102ba2290cfe2bdc388 Mon Sep 17 00:00:00 2001 From: Avra Sengupta Date: Wed, 4 Dec 2013 04:13:41 +0000 Subject: 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 --- xlators/mgmt/glusterd/src/glusterd-utils.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c') 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); -- cgit