diff options
author | Marek Marczykowski <marmarek@mimuw.edu.pl> | 2011-06-27 17:27:08 +0100 |
---|---|---|
committer | Marek Marczykowski <marmarek@mimuw.edu.pl> | 2011-06-27 17:27:08 +0100 |
commit | d3bd220d7babf5ee6d71be0d80dd85cab73da862 (patch) | |
tree | 5fda9fd79d256ff095d6b6e778394060da2d6378 /tools/libxl | |
parent | 21e104aab3d138706d3a9e674ff6ad296419bf61 (diff) | |
download | xen-d3bd220d7babf5ee6d71be0d80dd85cab73da862.tar.gz xen-d3bd220d7babf5ee6d71be0d80dd85cab73da862.tar.bz2 xen-d3bd220d7babf5ee6d71be0d80dd85cab73da862.zip |
libxl: Accept disk name in libxl_devid_to_device_disk
Accept disk name in xl block-detach.
Signed-off-by: Marek Marczykowski <marmarek@mimuw.edu.pl>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl')
-rw-r--r-- | tools/libxl/libxl_device.c | 3 | ||||
-rw-r--r-- | tools/libxl/libxl_internal.h | 2 | ||||
-rw-r--r-- | tools/libxl/libxl_utils.c | 8 |
3 files changed, 7 insertions, 6 deletions
diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c index ba537bfde8..886caa0cde 100644 --- a/tools/libxl/libxl_device.c +++ b/tools/libxl/libxl_device.c @@ -198,7 +198,8 @@ static int device_virtdisk_matches(const char *virtpath, const char *devtype, return 1; } -int libxl__device_disk_dev_number(char *virtpath, int *pdisk, int *ppartition) +int libxl__device_disk_dev_number(const char *virtpath, int *pdisk, + int *ppartition) { int disk, partition; char *ep; diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index df5a797d9e..76ad1f2aca 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -207,7 +207,7 @@ _hidden char *libxl__device_disk_string_of_backend(libxl_disk_backend backend); _hidden char *libxl__device_disk_string_of_format(libxl_disk_format format); _hidden int libxl__device_physdisk_major_minor(const char *physpath, int *major, int *minor); -_hidden int libxl__device_disk_dev_number(char *virtpath, +_hidden int libxl__device_disk_dev_number(const char *virtpath, int *pdisk, int *ppartition); _hidden int libxl__device_console_add(libxl__gc *gc, uint32_t domid, diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c index aad8e5a4a8..731b27e51e 100644 --- a/tools/libxl/libxl_utils.c +++ b/tools/libxl/libxl_utils.c @@ -530,18 +530,18 @@ int libxl_devid_to_device_disk(libxl_ctx *ctx, uint32_t domid, const char *devid, libxl_device_disk *disk) { libxl__gc gc = LIBXL_INIT_GC(ctx); - char *endptr, *val; + char *val; char *dompath, *diskpath, *be_path; unsigned int devid_n; int rc = ERROR_INVAL; - devid_n = strtoul(devid, &endptr, 10); - if (devid == endptr) { + devid_n = libxl__device_disk_dev_number(devid, NULL, NULL); + if (devid_n < 0) { goto out; } rc = ERROR_FAIL; dompath = libxl__xs_get_dompath(&gc, domid); - diskpath = libxl__sprintf(&gc, "%s/device/vbd/%s", dompath, devid); + diskpath = libxl__sprintf(&gc, "%s/device/vbd/%d", dompath, devid_n); if (!diskpath) { goto out; } |