diff options
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-ops.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c index 8f2a23a898a..97fb5605715 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-ops.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-ops.c @@ -1482,6 +1482,7 @@ glusterd_op_stage_start_volume (dict_t *dict, char **op_errstr, char volid[50] = {0,}; char xattr_volid[50] = {0,}; int caps = 0; + uint32_t i; this = THIS; GF_ASSERT (this); @@ -1556,10 +1557,18 @@ glusterd_op_stage_start_volume (dict_t *dict, char **op_errstr, (brickinfo->snap_status == -1)) continue; - ret = gf_lstat_dir (brickinfo->path, NULL); - if (ret && (flags & GF_CLI_FLAG_OP_FORCE)) { - continue; - } else if (ret) { + for (i = 0; i < 30; ++i) { + ret = gf_lstat_dir (brickinfo->path, NULL); + if (ret == 0) { + break; + } + gf_log (brickinfo->path, GF_LOG_INFO, "not ready yet; sleeping"); + sleep (1); + } + if (ret != 0) { + if (flags & GF_CLI_FLAG_OP_FORCE) { + continue; + } snprintf (msg, sizeof (msg), "Failed to find " "brick directory %s for volume %s. " "Reason : %s", brickinfo->path, |
