aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/libxl/libxl_linux.c')
-rw-r--r--tools/libxl/libxl_linux.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c
index 9ae0b4b88f..1fed3cd521 100644
--- a/tools/libxl/libxl_linux.c
+++ b/tools/libxl/libxl_linux.c
@@ -80,22 +80,14 @@ char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
/* Hotplug scripts helpers */
-static char **get_hotplug_env(libxl__gc *gc, libxl__device *dev)
+static char **get_hotplug_env(libxl__gc *gc,
+ char *script, libxl__device *dev)
{
- char *be_path = libxl__device_backend_path(gc, dev);
- char *script;
const char *type = libxl__device_kind_to_string(dev->backend_kind);
char **env;
int nr = 0;
libxl_nic_type nictype;
- script = libxl__xs_read(gc, XBT_NULL,
- GCSPRINTF("%s/%s", be_path, "script"));
- if (!script) {
- LOGEV(ERROR, errno, "unable to read script from %s", be_path);
- return NULL;
- }
-
const int arraysize = 13;
GCNEW_ARRAY(env, arraysize);
env[nr++] = "script";
@@ -170,7 +162,7 @@ static int libxl__hotplug_nic(libxl__gc *gc, libxl__device *dev,
goto out;
}
- *env = get_hotplug_env(gc, dev);
+ *env = get_hotplug_env(gc, script, dev);
if (!env) {
rc = ERROR_FAIL;
goto out;
@@ -212,7 +204,7 @@ static int libxl__hotplug_disk(libxl__gc *gc, libxl__device *dev,
goto error;
}
- *env = get_hotplug_env(gc, dev);
+ *env = get_hotplug_env(gc, script, dev);
if (!*env) {
rc = ERROR_FAIL;
goto error;