diff options
| -rw-r--r-- | libglusterfs/src/common-utils.c | 10 | ||||
| -rw-r--r-- | libglusterfs/src/common-utils.h | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-hooks.c | 8 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-rebalance.c | 2 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 41 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.h | 9 | ||||
| -rw-r--r-- | xlators/mgmt/glusterd/src/glusterd.c | 8 | 
7 files changed, 14 insertions, 66 deletions
| diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 4b8807be1eb..737487d1d72 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -59,17 +59,14 @@ struct dnscache6 {  /* works similar to mkdir(1) -p. - * @start returns the point in path from which components were created - * @start is -1 if the entire path existed before.   */  int -mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks, int *start) +mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks)  {          int             i               = 0;          int             ret             = -1;          char            dir[PATH_MAX]   = {0,};          struct stat     stbuf           = {0,}; -        int             created         = -1;          strcpy (dir, path);          i = (dir[0] == '/')? 1: 0; @@ -85,9 +82,6 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks, int *start)                          goto out;                  } -                if (ret && errno == EEXIST) -                        created = i; -                  if (ret && errno == EEXIST && !allow_symlinks) {                          ret = lstat (dir, &stbuf);                          if (ret) @@ -113,8 +107,6 @@ mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks, int *start)          }          ret = 0; -        if (start) -                *start = created;  out:          return ret; diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index 69d57c8d431..b2533ae175d 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -393,7 +393,7 @@ memdup (const void *ptr, size_t size)  }  int -mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks, int *start); +mkdir_p (char *path, mode_t mode, gf_boolean_t allow_symlinks);  /*   * rounds up nr to power of two. If nr is already a power of two, just returns   * nr diff --git a/xlators/mgmt/glusterd/src/glusterd-hooks.c b/xlators/mgmt/glusterd/src/glusterd-hooks.c index ba428b0f359..b0c4c2638f7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-hooks.c +++ b/xlators/mgmt/glusterd/src/glusterd-hooks.c @@ -93,7 +93,7 @@ glusterd_hooks_create_hooks_directory (char *basedir)          priv = THIS->private;          snprintf (path, sizeof (path), "%s/hooks", basedir); -        ret = mkdir_if_missing (path, NULL); +        ret = mkdir_p (path, 0777, _gf_true);          if (ret) {                  gf_log (THIS->name, GF_LOG_CRITICAL, "Unable to create %s due"                           "to %s", path, strerror (errno)); @@ -101,7 +101,7 @@ glusterd_hooks_create_hooks_directory (char *basedir)          }          GLUSTERD_GET_HOOKS_DIR (version_dir, GLUSTERD_HOOK_VER, priv); -        ret = mkdir_if_missing (version_dir, NULL); +        ret = mkdir_p (version_dir, 0777, _gf_true);          if (ret) {                  gf_log (THIS->name, GF_LOG_CRITICAL, "Unable to create %s due "                          "to %s", version_dir, strerror (errno)); @@ -115,7 +115,7 @@ glusterd_hooks_create_hooks_directory (char *basedir)                  snprintf (path, sizeof (path), "%s/%s", version_dir,                            cmd_subdir); -                ret = mkdir_if_missing (path, NULL); +                ret = mkdir_p (path, 0777, _gf_true);                  if (ret) {                          gf_log (THIS->name, GF_LOG_CRITICAL,                                  "Unable to create %s due to %s", @@ -127,7 +127,7 @@ glusterd_hooks_create_hooks_directory (char *basedir)                       type++) {                          snprintf (path, sizeof (path), "%s/%s/%s",                                    version_dir, cmd_subdir, type_subdir[type]); -                        ret = mkdir_if_missing (path, NULL); +                        ret = mkdir_p (path, 0777, _gf_true);                          if (ret) {                                  gf_log (THIS->name, GF_LOG_CRITICAL,                                          "Unable to create %s due to %s", diff --git a/xlators/mgmt/glusterd/src/glusterd-rebalance.c b/xlators/mgmt/glusterd/src/glusterd-rebalance.c index 686b9b36db3..8312610f5be 100644 --- a/xlators/mgmt/glusterd/src/glusterd-rebalance.c +++ b/xlators/mgmt/glusterd/src/glusterd-rebalance.c @@ -262,7 +262,7 @@ glusterd_handle_defrag_start (glusterd_volinfo_t *volinfo, char *op_errstr,          glusterd_store_perform_node_state_store (volinfo);          GLUSTERD_GET_DEFRAG_DIR (defrag_path, volinfo, priv); -        ret = mkdir_p (defrag_path, 0777, 0, NULL); +        ret = mkdir_p (defrag_path, 0777, _gf_true);          if (ret) {                  gf_log (THIS->name, GF_LOG_ERROR, "Failed to create "                          "directory %s", defrag_path); diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index ea0ee68e680..1b5a58dd73d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -4474,9 +4474,8 @@ glusterd_brick_create_path (char *host, char *path, uuid_t uuid,          int             ret             = -1;          char            msg[2048]       = {0,};          gf_boolean_t    in_use          = _gf_false; -        gf_boolean_t    created         = _gf_true; -        ret = mkdir_if_missing (path, &created); +        ret = mkdir_p (path, 0777, _gf_true);          if (ret)                  goto out; @@ -4510,8 +4509,6 @@ glusterd_brick_create_path (char *host, char *path, uuid_t uuid,                  snprintf (msg, sizeof (msg), "Failed to set extended "                            "attributes %s, reason: %s",                            GF_XATTR_VOL_ID_KEY, strerror (errno)); -                if (created) -                        rmdir (path);                  goto out;          } @@ -4862,38 +4859,6 @@ glusterd_delete_all_bricks (glusterd_volinfo_t* volinfo)          return ret;  } -/* @new should be used by caller only if ret is zero. - * caller should set @new to 'true' by default.*/ -int -mkdir_if_missing (char *path, gf_boolean_t *new) -{ -        struct stat st = {0,}; -        int        ret = 0; -        gf_boolean_t created = _gf_true; - -        ret = mkdir (path, 0777); -        if (ret && errno != EEXIST) -                goto out; - -        if (ret && errno == EEXIST) -                created = _gf_false; - -        ret = stat (path, &st); -        if (ret == -1 || !S_ISDIR (st.st_mode)) { -                ret = -1; -                goto out; -        } - -        if (new) -                *new = created; - -out: -        if (ret) -                gf_log ("", GF_LOG_WARNING, "Failed to create the" -                        " directory %s", path); -        return ret; -} -  int  glusterd_start_gsync (glusterd_volinfo_t *master_vol, char *slave,                        char *glusterd_uuid_str, char **op_errstr) @@ -4921,7 +4886,7 @@ glusterd_start_gsync (glusterd_volinfo_t *master_vol, char *slave,                  goto out;          snprintf (buf, PATH_MAX, "%s/"GEOREP"/%s", priv->workdir, master_vol->volname); -        ret = mkdir_if_missing (buf, NULL); +        ret = mkdir_p (buf, 0777, _gf_true);          if (ret) {                  errcode = -1;                  goto out; @@ -4929,7 +4894,7 @@ glusterd_start_gsync (glusterd_volinfo_t *master_vol, char *slave,          snprintf (buf, PATH_MAX, DEFAULT_LOG_FILE_DIRECTORY"/"GEOREP"/%s",                    master_vol->volname); -        ret = mkdir_if_missing (buf, NULL); +        ret = mkdir_p (buf, 0777, _gf_true);          if (ret) {                  errcode = -1;                  goto out; diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index d149cb9d0dd..c1b2ee9aea9 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -57,15 +57,6 @@ typedef struct glusterd_voldict_ctx_ {          char    *val_name;  } glusterd_voldict_ctx_t; -/* Moved the definition from gluster-utils.c avoiding - * extern'ing in multiple places. - * (Indeed, XXX: we'd rather need a general - * "mkdir -p" like routine in libglusterfs) -*/ - -int -mkdir_if_missing (char *path, gf_boolean_t *new); -  int  glusterd_compare_lines (const void *a, const void *b); diff --git a/xlators/mgmt/glusterd/src/glusterd.c b/xlators/mgmt/glusterd/src/glusterd.c index a2c59d0de15..58890985f96 100644 --- a/xlators/mgmt/glusterd/src/glusterd.c +++ b/xlators/mgmt/glusterd/src/glusterd.c @@ -344,7 +344,7 @@ glusterd_crt_georep_folders (char *georepdir, glusterd_conf_t *conf)          }          snprintf (georepdir, PATH_MAX, "%s/"GEOREP, conf->workdir); -        ret = mkdir_if_missing (georepdir, NULL); +        ret = mkdir_p (georepdir, 0777, _gf_true);          if (-1 == ret) {                  gf_log ("glusterd", GF_LOG_CRITICAL,                          "Unable to create "GEOREP" directory %s", @@ -359,7 +359,7 @@ glusterd_crt_georep_folders (char *georepdir, glusterd_conf_t *conf)                          georepdir);                  goto out;          } -        ret = mkdir_if_missing (DEFAULT_LOG_FILE_DIRECTORY"/"GEOREP, NULL); +        ret = mkdir_p (DEFAULT_LOG_FILE_DIRECTORY"/"GEOREP, 0777, _gf_true);          if (-1 == ret) {                  gf_log ("glusterd", GF_LOG_CRITICAL,                          "Unable to create "GEOREP" log directory"); @@ -373,8 +373,8 @@ glusterd_crt_georep_folders (char *georepdir, glusterd_conf_t *conf)                          georepdir);                  goto out;          } -        ret = mkdir_if_missing (DEFAULT_LOG_FILE_DIRECTORY"/"GEOREP"-slaves", -                                NULL); +        ret = mkdir_p (DEFAULT_LOG_FILE_DIRECTORY"/"GEOREP"-slaves", 0777, +                      _gf_true);          if (-1 == ret) {                  gf_log ("glusterd", GF_LOG_CRITICAL,                          "Unable to create "GEOREP" slave log directory"); | 
