diff options
author | N Balachandran <nbalacha@redhat.com> | 2015-12-03 12:52:54 +0530 |
---|---|---|
committer | Dan Lambright <dlambrig@redhat.com> | 2015-12-03 10:01:07 -0800 |
commit | 96fc7f64da2ef09e82845a7ab97574f511a9aae5 (patch) | |
tree | 625d0f3e162845acf5d1d0fb63a0cd929669bcb6 /xlators/cluster/dht/src/dht-shared.c | |
parent | cae9512d60f5715459ea5883c657c679197982d9 (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.c | 29 |
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; |