From ee77fa7ac83f1d5b3b77c032bf97374f34304a64 Mon Sep 17 00:00:00 2001 From: Atin Mukherjee 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 Reviewed-on: http://review.gluster.org/11364 Tested-by: NetBSD Build System Reviewed-by: Rajesh Joseph Reviewed-by: Kaushal M Reviewed-by: Krishnan Parthasarathi Reviewed-on: https://code.engineering.redhat.com/gerrit/51469 Reviewed-by: Vijay Bellur Tested-by: Vijay Bellur --- 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