diff options
-rw-r--r-- | tests/basic/afr/resolve.t | 3 | ||||
-rw-r--r-- | tests/bugs/replicate/bug-1130892.t | 3 | ||||
-rw-r--r-- | tests/bugs/replicate/bug-1402730.t | 3 | ||||
-rwxr-xr-x | tests/bugs/replicate/bug-830665.t | 3 | ||||
-rw-r--r-- | xlators/features/index/src/index.c | 13 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.c | 26 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-utils.h | 11 | ||||
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volgen.c | 4 |
8 files changed, 29 insertions, 37 deletions
diff --git a/tests/basic/afr/resolve.t b/tests/basic/afr/resolve.t index f7351f843ba..a741eee6e5e 100644 --- a/tests/basic/afr/resolve.t +++ b/tests/basic/afr/resolve.t @@ -24,9 +24,8 @@ TEST kill_brick $V0 $H0 $B0/${V0}0 rm -rf $B0/${V0}0/.glusterfs $B0/${V0}0/a #Ideally, disk replacement is done using reset-brick or replace-brick gluster CLI -#which will create .glusterfs/indices folder. +#which will create .glusterfs folder. mkdir $B0/${V0}0/.glusterfs && chmod 600 $B0/${V0}0/.glusterfs -mkdir $B0/${V0}0/.glusterfs/indices && chmod 600 $B0/${V0}0/.glusterfs/indices TEST $CLI volume start $V0 force EXPECT_WITHIN $CHILD_UP_TIMEOUT "1" afr_child_up_status_meta $M0 $V0-replicate-0 0 diff --git a/tests/bugs/replicate/bug-1130892.t b/tests/bugs/replicate/bug-1130892.t index 9005791a597..c7988fd648b 100644 --- a/tests/bugs/replicate/bug-1130892.t +++ b/tests/bugs/replicate/bug-1130892.t @@ -40,9 +40,8 @@ TEST rm -rf $B0/${V0}-1/one TEST rm -rf $B0/${V0}-1/.glusterfs #Ideally, disk replacement is done using reset-brick or replace-brick gluster CLI -#which will create .glusterfs/indices folder. +#which will create .glusterfs folder. mkdir $B0/${V0}-1/.glusterfs && chmod 600 $B0/${V0}-1/.glusterfs -mkdir $B0/${V0}-1/.glusterfs/indices && chmod 600 $B0/${V0}-1/.glusterfs/indices # Start force TEST $CLI volume start $V0 force diff --git a/tests/bugs/replicate/bug-1402730.t b/tests/bugs/replicate/bug-1402730.t index 28c6761f91f..c7866df463b 100644 --- a/tests/bugs/replicate/bug-1402730.t +++ b/tests/bugs/replicate/bug-1402730.t @@ -24,9 +24,8 @@ rm -rf $B0/${V0}2/* rm -rf $B0/${V0}2/.glusterfs #Ideally, disk replacement is done using reset-brick or replace-brick gluster CLI -#which will create .glusterfs/indices folder. +#which will create .glusterfs folder. mkdir $B0/${V0}2/.glusterfs && chmod 600 $B0/${V0}2/.glusterfs -mkdir $B0/${V0}2/.glusterfs/indices && chmod 600 $B0/${V0}2/.glusterfs/indices TEST $CLI volume start $V0 force diff --git a/tests/bugs/replicate/bug-830665.t b/tests/bugs/replicate/bug-830665.t index d044dae75ea..acebe3ec917 100755 --- a/tests/bugs/replicate/bug-830665.t +++ b/tests/bugs/replicate/bug-830665.t @@ -77,9 +77,8 @@ volid=$(getfattr -e hex -n trusted.glusterfs.volume-id $B0/${V0}-0 2> /dev/null rm -rf $B0/${V0}-0; mkdir $B0/${V0}-0; #Ideally, disk replacement is done using reset-brick or replace-brick gluster CLI -#which will create .glusterfs/indices folder. +#which will create .glusterfs folder. mkdir $B0/${V0}-0/.glusterfs && chmod 600 $B0/${V0}-0/.glusterfs -mkdir $B0/${V0}-0/.glusterfs/indices && chmod 600 $B0/${V0}-0/.glusterfs/indices setfattr -n trusted.glusterfs.volume-id -v $volid $B0/${V0}-0 diff --git a/xlators/features/index/src/index.c b/xlators/features/index/src/index.c index 8590482a5b3..12f98974fc3 100644 --- a/xlators/features/index/src/index.c +++ b/xlators/features/index/src/index.c @@ -15,6 +15,7 @@ #include "common-utils.h" #include "index-messages.h" #include <ftw.h> +#include <libgen.h> /* for dirname() */ #include <signal.h> #define XATTROP_SUBDIR "xattrop" @@ -2285,6 +2286,8 @@ init (xlator_t *this) char *watchlist = NULL; char *dirtylist = NULL; char *pendinglist = NULL; + char *index_base_parent = NULL; + char *tmp = NULL; if (!this->children || this->children->next) { gf_msg (this->name, GF_LOG_ERROR, EINVAL, @@ -2336,12 +2339,14 @@ init (xlator_t *this) } GF_OPTION_INIT ("index-base", priv->index_basepath, path, out); - if (gf_lstat_dir (priv->index_basepath, NULL) != 0) { + tmp = gf_strdup(priv->index_basepath); + index_base_parent = dirname(tmp); + if (gf_lstat_dir (index_base_parent, NULL) != 0) { ret = -1; gf_msg (this->name, GF_LOG_ERROR, errno, INDEX_MSG_INDEX_DIR_CREATE_FAILED, - "Failed to find index basepath %s.", - priv->index_basepath); + "Failed to find parent dir (%s) of index basepath %s.", + index_base_parent, priv->index_basepath); goto out; } @@ -2414,6 +2419,8 @@ init (xlator_t *this) ret = 0; out: + GF_FREE(tmp); + if (ret) { if (cond_inited) pthread_cond_destroy (&priv->cond); diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c index dfdd795f186..fbf192ebdb7 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.c +++ b/xlators/mgmt/glusterd/src/glusterd-utils.c @@ -1444,7 +1444,7 @@ glusterd_validate_and_create_brickpath (glusterd_brickinfo_t *brickinfo, struct stat root_st = {0,}; char msg[2048] = {0,}; gf_boolean_t is_created = _gf_false; - char index_basepath[PATH_MAX] = {0}; + char glusterfs_dir_path[PATH_MAX] = {0}; ret = sys_mkdir (brickinfo->path, 0777); if (ret) { @@ -1459,18 +1459,6 @@ glusterd_validate_and_create_brickpath (glusterd_brickinfo_t *brickinfo, is_created = _gf_true; } - glusterd_get_index_basepath (brickinfo, index_basepath, - sizeof(index_basepath)); - - ret = mkdir_p (index_basepath, 0600, _gf_true); - if (ret && (errno != EEXIST)) { - snprintf (msg, sizeof (msg), "Failed to create index " - "basepath (%s) for brick %s:%s. Reason : %s ", - index_basepath, brickinfo->hostname, - brickinfo->path, strerror (errno)); - goto out; - } - ret = sys_lstat (brickinfo->path, &brick_st); if (ret) { snprintf (msg, sizeof (msg), "lstat failed on %s. Reason : %s", @@ -1547,6 +1535,18 @@ glusterd_validate_and_create_brickpath (glusterd_brickinfo_t *brickinfo, if (ret) goto out; + /* create .glusterfs directory */ + snprintf (glusterfs_dir_path, sizeof (glusterfs_dir_path), "%s/%s", + brickinfo->path, ".glusterfs"); + ret = sys_mkdir (glusterfs_dir_path, 0600); + if (ret && (errno != EEXIST)) { + snprintf (msg, sizeof (msg), "Failed to create .glusterfs " + "directory for brick %s:%s. Reason : %s ", + brickinfo->hostname, brickinfo->path, + strerror (errno)); + goto out; + } + ret = 0; out: diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.h b/xlators/mgmt/glusterd/src/glusterd-utils.h index fce56b12e9c..ce3a7787be5 100644 --- a/xlators/mgmt/glusterd/src/glusterd-utils.h +++ b/xlators/mgmt/glusterd/src/glusterd-utils.h @@ -874,15 +874,4 @@ glusterd_brick_op_prerequisites (dict_t *dict, int glusterd_get_volinfo_from_brick (char *brick, glusterd_volinfo_t **volinfo); -#define INDEX_BASEPATH ".glusterfs/indices" -static inline void -glusterd_get_index_basepath (glusterd_brickinfo_t *brickinfo, char *buffer, - size_t size) -{ - if (!buffer) - return; - snprintf (buffer, size, "%s/%s", brickinfo->path, INDEX_BASEPATH); - -} - #endif diff --git a/xlators/mgmt/glusterd/src/glusterd-volgen.c b/xlators/mgmt/glusterd/src/glusterd-volgen.c index 69629f201aa..b261889407c 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volgen.c +++ b/xlators/mgmt/glusterd/src/glusterd-volgen.c @@ -2012,8 +2012,8 @@ brick_graph_add_index (volgen_graph_t *graph, glusterd_volinfo_t *volinfo, if (!xl) goto out; - glusterd_get_index_basepath (brickinfo, index_basepath, - sizeof(index_basepath)); + snprintf (index_basepath, sizeof (index_basepath), "%s/%s", + brickinfo->path, ".glusterfs/indices"); ret = xlator_set_option (xl, "index-base", index_basepath); if (ret) |