[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] libxl: only read script once in libxl__hotplug_*



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1343821803 -3600
# Node ID 5ba5402335fe0365d2d0110df34a8bd58c5381da
# Parent  3aecd311802744b325a4bf246f1b4507baf2d932
libxl: only read script once in libxl__hotplug_*

instead of duplicating the error handling etc in get_hotplug_env just pass the
script already read by the caller down.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

diff -r 3aecd3118027 -r 5ba5402335fe tools/libxl/libxl_linux.c
--- a/tools/libxl/libxl_linux.c Wed Aug 01 12:50:03 2012 +0100
+++ b/tools/libxl/libxl_linux.c Wed Aug 01 12:50:03 2012 +0100
@@ -80,22 +80,14 @@ char *libxl__devid_to_localdev(libxl__gc
 
 /* 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 
         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
         goto error;
     }
 
-    *env = get_hotplug_env(gc, dev);
+    *env = get_hotplug_env(gc, script, dev);
     if (!*env) {
         rc = ERROR_FAIL;
         goto error;

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.