]> xenbits.xensource.com Git - xen.git/commitdiff
xl block-detach: allow other than numeric-decimal specification of the disk
authorJan Beulich <JBeulich@suse.com>
Tue, 13 Mar 2012 17:11:09 +0000 (17:11 +0000)
committerJan Beulich <JBeulich@suse.com>
Tue, 13 Mar 2012 17:11:09 +0000 (17:11 +0000)
... 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>
tools/libxl/libxl.c
tools/libxl/libxl_utils.h
tools/libxl/xl_cmdimpl.c

index c0600868fdd8a4f92d46de21cd8fad09ad403c20..53443665d4211789e3488b68be5135960116829f 100644 (file)
@@ -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);
index a4f5bf2d81f3ce886c8f2ef8cc16a75aedc3c3ca..ca53a8a233f47c55ca98e139fc5083fc27c44eff 100644 (file)
@@ -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);
index 47527440ca02df22e15f0432145456e01eb7efb2..553606b8eb3349ea963c20604d3e294245f2ef73 100644 (file)
@@ -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;
     }