From 15965dd310192cae8f05fddda309e77ff5c72ca2 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: 1283833 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/12670 Tested-by: NetBSD Build System --- libglusterfs/src/Makefile.am | 1 + libglusterfs/src/xlator.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/Makefile.am b/libglusterfs/src/Makefile.am index 27d51dba7d6..85886c1f188 100644 --- a/libglusterfs/src/Makefile.am +++ b/libglusterfs/src/Makefile.am @@ -3,6 +3,7 @@ libglusterfs_la_CFLAGS = $(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 ${ARGP_STANDALONE_CPPFLAGS} \ -DSBIN_DIR=\"$(sbindir)\" -I$(CONTRIBDIR)/timer-wheel diff --git a/libglusterfs/src/xlator.c b/libglusterfs/src/xlator.c index 0de13900914..22a494d01a5 100644 --- a/libglusterfs/src/xlator.c +++ b/libglusterfs/src/xlator.c @@ -128,7 +128,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) { goto out; } -- cgit