diff options
author | Raghavendra Bhat <raghavendra@redhat.com> | 2013-10-24 15:05:04 +0530 |
---|---|---|
committer | shishir gowda <sgowda@redhat.com> | 2013-11-15 12:48:08 +0530 |
commit | 262d9379e1dbe909e2a622a7e1806b70d3a59591 (patch) | |
tree | e3d82515f33762011e63cb082bc8c238938221b6 /xlators/mgmt/glusterd/src/glusterd-utils.c | |
parent | d8c95f33e2557aff81d4a7f3e22f1c784183f5aa (diff) |
mgmt/glusterd: handle snap volume store and actual volume store separately
Change-Id: I8b88fe94d0f9ee1089cafdda037abcf2f7a180ca
Signed-off-by: Raghavendra Bhat <raghavendra@redhat.com>
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-utils.c')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index fd8f5e774..771b0af5a 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -1822,7 +1822,8 @@ glusterd_sort_and_redirect (const char *src_filepath, int dest_fd) } int -glusterd_volume_compute_cksum (glusterd_volinfo_t *volinfo) +glusterd_volume_compute_cksum (glusterd_volinfo_t *volinfo, + glusterd_volinfo_t *snap_volinfo) { int32_t ret = -1; glusterd_conf_t *priv = NULL; @@ -1842,7 +1843,12 @@ glusterd_volume_compute_cksum (glusterd_volinfo_t *volinfo) priv = THIS->private; GF_ASSERT (priv); - GLUSTERD_GET_VOLUME_DIR (path, volinfo, priv); + if (snap_volinfo) { + GLUSTERD_GET_SNAP_DIR (path, volinfo, snap_volinfo->volname, + priv); + } else { + GLUSTERD_GET_VOLUME_DIR (path, volinfo, priv); + } snprintf (cksum_path, sizeof (cksum_path), "%s/%s", path, GLUSTERD_CKSUM_FILE); @@ -1858,14 +1864,19 @@ glusterd_volume_compute_cksum (glusterd_volinfo_t *volinfo) snprintf (filepath, sizeof (filepath), "%s/%s", path, GLUSTERD_VOLUME_INFO_FILE); - snprintf (sort_filepath, sizeof (sort_filepath), "/tmp/%s.XXXXXX", - volinfo->volname); + if (snap_volinfo) + snprintf (sort_filepath, sizeof (sort_filepath), + "/tmp/%s.XXXXXX", snap_volinfo->volname); + else + snprintf (sort_filepath, sizeof (sort_filepath), + "/tmp/%s.XXXXXX", volinfo->volname); sort_fd = mkstemp (sort_filepath); if (sort_fd < 0) { gf_log (this->name, GF_LOG_ERROR, "Could not generate temp " - "file, reason: %s for volume: %s", strerror (errno), - volinfo->volname); + "file, reason: %s for %s: %s", strerror (errno), + (snap_volinfo)?"snap":"volume", + (snap_volinfo)?snap_volinfo->volname:volinfo->volname); goto out; } else { unlink_sortfile = _gf_true; |