From b19a1d0798aef65c07171492f7e3faaf3af6fed3 Mon Sep 17 00:00:00 2001 From: Atin Mukherjee Date: Thu, 19 Nov 2015 12:00:23 +0530 Subject: core : Use correct path in dlopen for socket.so Backport of http://review.gluster.org/12656 This patch fixes the path for socket.so file while loading the so dynamically. Also for config.memory-accounting & config.transport voltype is changed to glusterd to fix the warning message coming from xlator_volopt_dynload Change-Id: I0f7964814586f2018d4922b23c683f4e1eb3098e BUG: 1283834 Signed-off-by: Atin Mukherjee Reviewed-on: http://review.gluster.org/12656 Tested-by: Gluster Build System Reviewed-by: Niels de Vos Reviewed-by: Jeff Darcy Reviewed-on: http://review.gluster.org/12671 Reviewed-by: Raghavendra Bhat --- libglusterfs/src/Makefile.am | 1 + libglusterfs/src/xlator.c | 7 ++++++- xlators/mgmt/glusterd/src/glusterd-volume-set.c | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 318058b3195..822214dac9d 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -3,6 +3,7 @@ libglusterfs_la_CFLAGS = -Wall $(GF_CFLAGS) $(GF_DARWIN_LIBGLUSTERFS_CFLAGS) \ libglusterfs_la_CPPFLAGS = $(GF_CPPFLAGS) -D__USE_FILE_OFFSET64 \ -DXLATORDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)/xlator\" \ + -DXLATORPARENTDIR=\"$(libdir)/glusterfs/$(PACKAGE_VERSION)\" \ -I$(top_srcdir)/rpc/rpc-lib/src/ -I$(CONTRIBDIR)/rbtree \ -I$(CONTRIBDIR)/libexecinfo \ -DSBIN_DIR=\"$(sbindir)\" diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index 7b873fcc79d..341f1781b09 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -125,7 +125,12 @@ xlator_volopt_dynload (char *xlator_type, void **dl_handle, GF_VALIDATE_OR_GOTO ("xlator", xlator_type, out); - ret = gf_asprintf (&name, "%s/%s.so", XLATORDIR, xlator_type); + /* socket.so doesn't fall under the default xlator directory, hence we + * need this check */ + if (!strstr(xlator_type, "rpc-transport")) + ret = gf_asprintf (&name, "%s/%s.so", XLATORDIR, xlator_type); + else + ret = gf_asprintf (&name, "%s/%s.so", XLATORPARENTDIR, xlator_type); if (-1 == ret) { gf_log ("xlator", GF_LOG_ERROR, "asprintf failed"); goto out; diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 0ed5b316c4f..33eedb10630 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -1606,13 +1606,13 @@ struct volopt_map_entry glusterd_volopt_map[] = { .op_version = 3 }, { .key = "config.memory-accounting", - .voltype = "configuration", + .voltype = "mgmt/glusterd", .option = "!config", .op_version = 2, .flags = OPT_FLAG_CLIENT_OPT }, { .key = "config.transport", - .voltype = "configuration", + .voltype = "mgmt/glusterd", .option = "!config", .op_version = 2 }, -- cgit