diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index b4e9c1ff7658fb737bbde7c6b6eec9373460dc82..c5915bd30803bea51f151f89da247ee6d47484ef 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -1179,7 +1179,6 @@ int main(int argc, char **argv) { argv[0], driverdir); exit(EXIT_FAILURE); } - virLockManagerSetPluginDir(driverdir); #ifdef WITH_DRIVER_MODULES virDriverModuleInitialize(driverdir); #endif diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index ac7707dd79207b63e1d3abb10430b5867277bef6..c8a2682d8ccbd75a75e1352ac238c43128c38c4b 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -840,7 +840,6 @@ virLockManagerPluginRef; virLockManagerPluginUnref; virLockManagerPluginUsesState; virLockManagerRelease; -virLockManagerSetPluginDir; # nodeinfo.h diff --git a/src/locking/lock_manager.c b/src/locking/lock_manager.c index 509373977609a5f18f56c1a5a28f6a62f0c79dbc..ec90d0417649e671ce6bd25cc3e45193375a17d3 100644 --- a/src/locking/lock_manager.c +++ b/src/locking/lock_manager.c @@ -24,6 +24,7 @@ #include "lock_manager.h" #include "lock_driver_nop.h" #include "virerror.h" +#include "virfile.h" #include "virlog.h" #include "viralloc.h" #include "viruuid.h" @@ -64,18 +65,6 @@ struct _virLockManagerPlugin { int refs; }; -#define DEFAULT_LOCK_MANAGER_PLUGIN_DIR LIBDIR "/libvirt/lock-driver" - -static const char *virLockManagerPluginDir = DEFAULT_LOCK_MANAGER_PLUGIN_DIR; - -void -virLockManagerSetPluginDir(const char *dir) -{ - if (dir) - virLockManagerPluginDir = dir; -} - - static void virLockManagerLogParams(size_t nparams, virLockManagerParamPtr params) { @@ -137,7 +126,6 @@ virLockManagerPluginPtr virLockManagerPluginNew(const char *name, void *handle = NULL; virLockDriverPtr driver; virLockManagerPluginPtr plugin = NULL; - const char *moddir = virGetEnvBlockSUID("LIBVIRT_LOCK_MANAGER_PLUGIN_DIR"); char *modfile = NULL; char *configFile = NULL; @@ -151,14 +139,16 @@ virLockManagerPluginPtr virLockManagerPluginNew(const char *name, if (STREQ(name, "nop")) { driver = &virLockDriverNop; } else { - if (moddir == NULL) - moddir = virLockManagerPluginDir; - - VIR_DEBUG("Module load %s from %s", name, moddir); - - if (virAsprintf(&modfile, "%s/%s.so", moddir, name) < 0) + if (!(modfile = virFileFindResourceFull(name, + NULL, + ".so", + "src/.libs", + LIBDIR "/libvirt/lock-driver", + "LIBVIRT_LOCK_MANAGER_PLUGIN_DIR"))) goto cleanup; + VIR_DEBUG("Module load %s from %s", name, modfile); + if (access(modfile, R_OK) < 0) { virReportSystemError(errno, _("Plugin %s not accessible"), diff --git a/src/locking/lock_manager.h b/src/locking/lock_manager.h index fea9db8d4e681f20b4f50320484fa184d296ba2d..418975976c477b34a191442a797e5428b7ae2afc 100644 --- a/src/locking/lock_manager.h +++ b/src/locking/lock_manager.h @@ -28,7 +28,6 @@ typedef struct _virLockManagerPlugin virLockManagerPlugin; typedef virLockManagerPlugin *virLockManagerPluginPtr; -void virLockManagerSetPluginDir(const char *dir); virLockManagerPluginPtr virLockManagerPluginNew(const char *name, const char *driverName, const char *configDir,