Mailing List Archive

[PATCH 14 of 14 v4] libxl: remove force parameter from libxl__devices_destroy
# HG changeset patch
# User Roger Pau Monne <roger.pau@entel.upc.edu>
# Date 1323766195 -3600
# Node ID 8a84f53376862427f254a017cb52c928dbdd3d32
# Parent ea1a9fe2ef02f0737fa6f0c884a5ebaeb2b08872
libxl: remove force parameter from libxl__devices_destroy

Remove the force flag, and always use forced destruction.

Signed-off-by: Roger Pau Monne <roger.pau@entel.upc.edu>

diff -r ea1a9fe2ef02 -r 8a84f5337686 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Tue Dec 13 09:49:55 2011 +0100
+++ b/tools/libxl/libxl.c Tue Dec 13 09:49:55 2011 +0100
@@ -768,7 +768,7 @@ int libxl_domain_destroy(libxl_ctx *ctx,

libxl__qmp_cleanup(&gc, domid);
}
- if (libxl__devices_destroy(&gc, domid, 1) < 0)
+ if (libxl__devices_destroy(&gc, domid) < 0)
LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__devices_destroy failed for %d", domid);

vm_path = libxl__xs_read(&gc, XBT_NULL, libxl__sprintf(&gc, "%s/vm", dom_path));
diff -r ea1a9fe2ef02 -r 8a84f5337686 tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c Tue Dec 13 09:49:55 2011 +0100
+++ b/tools/libxl/libxl_device.c Tue Dec 13 09:49:55 2011 +0100
@@ -524,13 +524,13 @@ int libxl__device_destroy(libxl__gc *gc,
return 0;
}

-int libxl__devices_destroy(libxl__gc *gc, uint32_t domid, int force)
+int libxl__devices_destroy(libxl__gc *gc, uint32_t domid)
{
libxl_ctx *ctx = libxl__gc_owner(gc);
char *path;
unsigned int num_kinds, num_devs;
char **kinds = NULL, **devs = NULL;
- int i, j, n_watches = 0;
+ int i, j;
libxl__device dev;
libxl__device_kind kind;

@@ -561,16 +561,7 @@ int libxl__devices_destroy(libxl__gc *gc
dev.kind = kind;
dev.devid = atoi(devs[j]);

- if (force) {
- libxl__device_destroy(gc, &dev);
- } else {
- int rc = libxl__device_remove(gc, &dev, 0);
- if (rc < 0)
- LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
- "cannot remove device %s\n", path);
- else
- n_watches += rc;
- }
+ libxl__device_destroy(gc, &dev);
}
}
}
@@ -584,37 +575,9 @@ int libxl__devices_destroy(libxl__gc *gc
dev.kind = LIBXL__DEVICE_KIND_CONSOLE;
dev.devid = 0;

- if (force) {
- libxl__device_destroy(gc, &dev);
- } else {
- int rc = libxl__device_remove(gc, &dev, 0);
- if (rc < 0)
- LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
- "cannot remove device %s\n", path);
- else
- n_watches += rc;
- }
+ libxl__device_destroy(gc, &dev);
}

- if (!force) {
- /* Linux-ism. Most implementations leave the timeout
- * untouched after select. Linux, however, will chip
- * away the elapsed time from it, which is what we
- * need to enforce a single time span waiting for
- * device destruction. */
- struct timeval tv;
- tv.tv_sec = LIBXL_DESTROY_TIMEOUT;
- tv.tv_usec = 0;
- while (n_watches > 0) {
- if (libxl__wait_for_device_state(gc, &tv, XenbusStateClosed,
- destroy_device) < 0) {
- /* function returned ERROR_* */
- break;
- } else {
- n_watches--;
- }
- }
- }
out:
return 0;
}
diff -r ea1a9fe2ef02 -r 8a84f5337686 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h Tue Dec 13 09:49:55 2011 +0100
+++ b/tools/libxl/libxl_internal.h Tue Dec 13 09:49:55 2011 +0100
@@ -252,7 +252,7 @@ _hidden int libxl__parse_backend_path(li
libxl__device *dev);
_hidden int libxl__device_remove(libxl__gc *gc, libxl__device *dev, int wait);
_hidden int libxl__device_destroy(libxl__gc *gc, libxl__device *dev);
-_hidden int libxl__devices_destroy(libxl__gc *gc, uint32_t domid, int force);
+_hidden int libxl__devices_destroy(libxl__gc *gc, uint32_t domid);
_hidden int libxl__wait_for_backend(libxl__gc *gc, char *be_path, char *state);

/* Handler for the libxl__wait_for_device_state callback */

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Re: [PATCH 14 of 14 v4] libxl: remove force parameter from libxl__devices_destroy [ In reply to ]
Roger Pau Monne writes ("[Xen-devel] [PATCH 14 of 14 v4] libxl: remove force parameter from libxl__devices_destroy"):
> libxl: remove force parameter from libxl__devices_destroy
>
> Remove the force flag, and always use forced destruction.

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel