From 6cf4c493d1f781f011af064385b303aa547f755d Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Tue, 13 Mar 2012 17:11:09 +0000 Subject: xl block-detach: allow other than numeric-decimal specification of the disk ... to be in sync with block-attach. And rename the function. Signed-off-by: Jan Beulich Acked-by: Ian Campbell Committed-by: Ian Jackson --- tools/libxl/libxl.c | 8 ++++++-- tools/libxl/libxl_utils.h | 2 +- tools/libxl/xl_cmdimpl.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'tools/libxl') diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index c0600868fd..53443665d4 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -1476,13 +1476,17 @@ static void libxl__device_disk_from_xs_be(libxl__gc *gc, disk->format = LIBXL_DISK_FORMAT_UNKNOWN; } -int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, - int devid, libxl_device_disk *disk) +int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid, + const char *vdev, libxl_device_disk *disk) { GC_INIT(ctx); char *dompath, *path; + int devid = libxl__device_disk_dev_number(vdev, NULL, NULL); int rc = ERROR_FAIL; + if (devid < 0) + return ERROR_INVAL; + libxl_device_disk_init(disk); dompath = libxl__xs_get_dompath(gc, domid); diff --git a/tools/libxl/libxl_utils.h b/tools/libxl/libxl_utils.h index a4f5bf2d81..ca53a8a233 100644 --- a/tools/libxl/libxl_utils.h +++ b/tools/libxl/libxl_utils.h @@ -61,7 +61,7 @@ int libxl_mac_to_device_nic(libxl_ctx *ctx, uint32_t domid, int libxl_devid_to_device_nic(libxl_ctx *ctx, uint32_t domid, int devid, libxl_device_nic *nic); -int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, int devid, +int libxl_vdev_to_device_disk(libxl_ctx *ctx, uint32_t domid, const char *vdev, libxl_device_disk *disk); int libxl_cpumap_alloc(libxl_ctx *ctx, libxl_cpumap *cpumap); diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 47527440ca..553606b8eb 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -4804,7 +4804,7 @@ int main_blockdetach(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", argv[optind]); return 1; } - if (libxl_devid_to_device_disk(ctx, domid, atoi(argv[optind+1]), &disk)) { + if (libxl_vdev_to_device_disk(ctx, domid, argv[optind+1], &disk)) { fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]); return 1; } -- cgit v1.2.3