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 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'libglusterfs/src') 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; -- cgit