[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 14 of 14 v4] libxl: remove force parameter from libxl__devices_destroy
# HG changeset patch # User Roger Pau Monne <roger.pau@xxxxxxxxxxxxx> # 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@xxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |