Blob Blame History Raw
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