diff options
author | Jan Beulich <JBeulich@suse.com> | 2012-03-13 17:11:09 +0000 |
---|---|---|
committer | Jan Beulich <JBeulich@suse.com> | 2012-03-13 17:11:09 +0000 |
commit | 6cf4c493d1f781f011af064385b303aa547f755d (patch) | |
tree | fa4baa037d87510682c25450c3dc571aab40459e /tools/libxl | |
parent | 989794ea65aee77b5f6f412fd2c0c7f6c1ffc93e (diff) | |
download | xen-6cf4c493d1f781f011af064385b303aa547f755d.tar.gz xen-6cf4c493d1f781f011af064385b303aa547f755d.tar.bz2 xen-6cf4c493d1f781f011af064385b303aa547f755d.zip |
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 <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r-- | tools/libxl/libxl.c | 8 | ||||
-rw-r--r-- | tools/libxl/libxl_utils.h | 2 | ||||
-rw-r--r-- | tools/libxl/xl_cmdimpl.c | 2 |
3 files changed, 8 insertions, 4 deletions
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; } |