mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
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>
This commit is contained in:
1 parent
21e104aab3
commit
d3bd220d7b
3 files changed
+7
-6
No files matched your search
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||