summaryrefslogtreecommitdiffstats
path: root/xlators/cluster/dht/src/dht-shared.c
diff options
context:
space:
mode:
authorN Balachandran <nbalacha@redhat.com>2015-12-03 12:52:54 +0530
committerDan Lambright <dlambrig@redhat.com>2015-12-03 10:01:07 -0800
commit96fc7f64da2ef09e82845a7ab97574f511a9aae5 (patch)
tree625d0f3e162845acf5d1d0fb63a0cd929669bcb6 /xlators/cluster/dht/src/dht-shared.c
parentcae9512d60f5715459ea5883c657c679197982d9 (diff)
cluster/tier: fix loading tier.so into glusterd
glusterd occasionally loads shared libraries of translators. This failed for tiering due to a reference to dht_methods which is defined as a global variable which is not necessary. The global variable has been removed and this is now a member of dht_conf and is now initialised in the *_init calls. Change-Id: Ifa0a21e3962b5cd8d9b927ef1d087d3b25312953 BUG: 1287842 Signed-off-by: N Balachandran <nbalacha@redhat.com> Reviewed-on: http://review.gluster.org/12863 Tested-by: NetBSD Build System <jenkins@build.gluster.org> Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Dan Lambright <dlambrig@redhat.com> Tested-by: Dan Lambright <dlambrig@redhat.com>
Diffstat (limited to 'xlators/cluster/dht/src/dht-shared.c')
-rw-r--r--xlators/cluster/dht/src/dht-shared.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/xlators/cluster/dht/src/dht-shared.c b/xlators/cluster/dht/src/dht-shared.c
index 718f497bb03..d25f7d9e33b 100644
--- a/xlators/cluster/dht/src/dht-shared.c
+++ b/xlators/cluster/dht/src/dht-shared.c
@@ -564,6 +564,32 @@ out:
return ret;
}
+
+
+int
+dht_init_methods (xlator_t *this)
+{
+ int ret = -1;
+ dht_conf_t *conf = NULL;
+ dht_methods_t *methods = NULL;
+
+ GF_VALIDATE_OR_GOTO ("dht", this, err);
+
+ conf = this->private;
+ methods = &(conf->methods);
+
+ methods->migration_get_dst_subvol = dht_migration_get_dst_subvol;
+ methods->migration_needed = dht_migration_needed;
+ methods->migration_other = NULL;
+ methods->layout_search = dht_layout_search;
+
+ ret = 0;
+err:
+ return ret;
+}
+
+
+
int
dht_init (xlator_t *this)
{
@@ -803,7 +829,8 @@ dht_init (xlator_t *this)
if (dht_set_subvol_range(this))
goto err;
- conf->methods = &dht_methods;
+ if (dht_init_methods (this))
+ goto err;
return 0;