summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-utils.c
diff options
context:
space:
mode:
authorRaghavendra Bhat <raghavendra@redhat.com>2013-10-24 15:05:04 +0530
committershishir gowda <sgowda@redhat.com>2013-11-15 12:48:08 +0530
commit262d9379e1dbe909e2a622a7e1806b70d3a59591 (patch)
treee3d82515f33762011e63cb082bc8c238938221b6 /xlators/mgmt/glusterd/src/glusterd-utils.c
parentd8c95f33e2557aff81d4a7f3e22f1c784183f5aa (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.c23
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;