[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] libxl: Remove frontend and backend devices from xenstore after destroy
# HG changeset patch # User Marek Marczykowski <marmarek@xxxxxxxxxxxx> # Date 1309192132 -3600 # Node ID ff8d170852b3ebcd6301547fb296073ee24de344 # Parent 5d7998be22520ca9b1c0c3e6f881ca834deda299 libxl: Remove frontend and backend devices from xenstore after destroy Cleanup frontend and backend devices from xenstore for all dev types - not only disks. Because backend cleanup moved to libxl__device_destroy, libxl__devices_destroy is somehow simpler. Signed-off-by: Marek Marczykowski <marmarek@xxxxxxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- diff -r 5d7998be2252 -r ff8d170852b3 tools/libxl/libxl.c --- a/tools/libxl/libxl.c Mon Jun 27 17:27:08 2011 +0100 +++ b/tools/libxl/libxl.c Mon Jun 27 17:28:52 2011 +0100 @@ -1113,8 +1113,6 @@ device.devid = devid; device.kind = DEVICE_VBD; rc = libxl__device_del(&gc, &device, wait); - xs_rm(ctx->xsh, XBT_NULL, libxl__device_backend_path(&gc, &device)); - xs_rm(ctx->xsh, XBT_NULL, libxl__device_frontend_path(&gc, &device)); out_free: libxl__free_all(&gc); return rc; diff -r 5d7998be2252 -r ff8d170852b3 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Mon Jun 27 17:27:08 2011 +0100 +++ b/tools/libxl/libxl_device.c Mon Jun 27 17:28:52 2011 +0100 @@ -273,6 +273,8 @@ if (!force) { xs_watch(ctx->xsh, state_path, be_path); rc = 1; + } else { + xs_rm(ctx->xsh, XBT_NULL, be_path); } out: return rc; @@ -312,10 +314,8 @@ char *path, *be_path, *fe_path; unsigned int num1, num2; char **l1 = NULL, **l2 = NULL; - int i, j, n = 0, n_watches = 0; - flexarray_t *toremove; + int i, j, n_watches = 0; - toremove = flexarray_make(16, 1); path = libxl__sprintf(gc, "/local/domain/%d/device", domid); l1 = libxl__xs_directory(gc, XBT_NULL, path, &num1); if (!l1) { @@ -339,7 +339,6 @@ if (be_path != NULL) { if (libxl__device_destroy(gc, be_path, force) > 0) n_watches++; - flexarray_set(toremove, n++, libxl__dirname(gc, be_path)); } else { xs_rm(ctx->xsh, XBT_NULL, path); } @@ -352,7 +351,6 @@ if (be_path && strcmp(be_path, "")) { if (libxl__device_destroy(gc, be_path, force) > 0) n_watches++; - flexarray_set(toremove, n++, libxl__dirname(gc, be_path)); } if (!force) { @@ -372,17 +370,13 @@ } } } - for (i = 0; i < n; i++) { - flexarray_get(toremove, i, (void**) &path); - xs_rm(ctx->xsh, XBT_NULL, path); - } out: - flexarray_free(toremove); return 0; } int libxl__device_del(libxl__gc *gc, libxl__device *dev, int wait) { + libxl_ctx *ctx = libxl__gc_owner(gc); char *backend_path; int rc; @@ -401,6 +395,7 @@ (void)wait_for_dev_destroy(gc, &tv); } + xs_rm(ctx->xsh, XBT_NULL, libxl__device_frontend_path(gc, dev)); rc = 0; out: _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |