From ee77fa7ac83f1d5b3b77c032bf97374f34304a64 Mon Sep 17 00:00:00 2001
From: Atin Mukherjee <amukherj@redhat.com>
Date: Tue, 23 Jun 2015 15:40:32 +0530
Subject: [PATCH 132/190] glusterd: use mkdir_p for creating rundir
snapdsvc initialization is now dependent on all subsequent directories and
volfile creations.
However this may not hold true correct for all the cases. While importing a
volume we would need to start the service before the store creation.
To avoid this dependency, use mkdir_p instead of mkdir to create rundir
Change-Id: Ib251043398c40f1b76378e3bc6d0c36c1fe4cca3
BUG: 1234720
Signed-off-by: Atin Mukherjee <amukherj@redhat.com>
Reviewed-on: http://review.gluster.org/11364
Tested-by: NetBSD Build System <jenkins@build.gluster.org>
Reviewed-by: Rajesh Joseph <rjoseph@redhat.com>
Reviewed-by: Kaushal M <kaushal@redhat.com>
Reviewed-by: Krishnan Parthasarathi <kparthas@redhat.com>
Reviewed-on: https://code.engineering.redhat.com/gerrit/51469
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Tested-by: Vijay Bellur <vbellur@redhat.com>
---
xlators/mgmt/glusterd/src/glusterd-svc-mgmt.c | 2 +-
xlators/mgmt/glusterd/src/glusterd-utils.c | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/xlators/mgmt/glusterd/src/glusterd-svc-mgmt.c b/xlators/mgmt/glusterd/src/glusterd-svc-mgmt.c
index 1a68afb..04096a4 100644
--- a/xlators/mgmt/glusterd/src/glusterd-svc-mgmt.c
+++ b/xlators/mgmt/glusterd/src/glusterd-svc-mgmt.c
@@ -23,7 +23,7 @@ glusterd_svc_create_rundir (char *rundir)
{
int ret = -1;
- ret = mkdir (rundir, 0777);
+ ret = mkdir_p (rundir, 0777, _gf_true);
if ((ret == -1) && (EEXIST != errno)) {
gf_msg (THIS->name, GF_LOG_ERROR, errno,
GD_MSG_CREATE_DIR_FAILED, "Unable to create rundir %s",
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index f374f94..ab68f71 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -3802,6 +3802,13 @@ glusterd_import_friend_volume (dict_t *peer_data, size_t count)
(void) glusterd_delete_stale_volume (old_volinfo, new_volinfo);
}
+ ret = glusterd_snapdsvc_init (new_volinfo);
+ if (ret) {
+ gf_log (this->name, GF_LOG_ERROR, "Failed to initialize "
+ "snapdsvc for volume %s", new_volinfo->volname);
+ goto out;
+ }
+
if (glusterd_is_volume_started (new_volinfo)) {
(void) glusterd_start_bricks (new_volinfo);
if (glusterd_is_snapd_enabled (new_volinfo)) {
@@ -3817,13 +3824,6 @@ glusterd_import_friend_volume (dict_t *peer_data, size_t count)
goto out;
}
- ret = glusterd_snapdsvc_init (new_volinfo);
- if (ret) {
- gf_log (this->name, GF_LOG_ERROR, "Failed to initialize "
- "snapdsvc for volume %s", new_volinfo->volname);
- goto out;
- }
-
ret = glusterd_create_volfiles_and_notify_services (new_volinfo);
if (ret)
goto out;
--
1.7.1