libxenlight: fix dm_xenstore_record_pid
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 2 Dec 2009 18:41:31 +0000 (18:41 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 2 Dec 2009 18:41:31 +0000 (18:41 +0000)
The function dm_xenstore_record_pid is executed by a child of the main
process and therefore shouldn't use the same xenstore connection:
currently it opens a new connection but still uses the old one.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
tools/libxl/libxl.c

index 8d4411f613cc1f9141180917f9fc27c7c6303b51..ec75ca0af34a55b9cf235aeeb64513babca22e1d 100644 (file)
@@ -663,10 +663,10 @@ void dm_xenstore_record_pid(struct libxl_ctx *ctx, void *for_spawn,
     /* we mustn't use the parent's handle in the child */
 
     kvs[0] = "image/device-model-pid";
-    kvs[1] = libxl_sprintf(ctx, "%d", innerchild);
+    kvs[1] = libxl_sprintf(&clone, "%d", innerchild);
     kvs[2] = NULL;
-    rc = libxl_xs_writev(ctx, XBT_NULL, starting->dom_path, kvs);
-    if (rc) XL_LOG_ERRNO(ctx, XL_LOG_ERROR,
+    rc = libxl_xs_writev(&clone, XBT_NULL, starting->dom_path, kvs);
+    if (rc) XL_LOG_ERRNO(&clone, XL_LOG_ERROR,
                          "Couldn't record device model pid %ld at %s/%s",
                          (unsigned long)innerchild, starting->dom_path, kvs);
     xs_daemon_close(clone.xsh);