summaryrefslogtreecommitdiffstats
path: root/xlators/mgmt/glusterd/src/glusterd-utils.c
diff options
context:
space:
mode:
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;