[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC Patch v4 8/9] store correct format into tapdisk-params/params
If the format is raw, we store aio into tapdisk-params/params. And we cannot use the API libxl_disk_format_from_string() to get the format from the string. The API libxl__device_disk_string_of_format() is just for blktap2, which needs to pass aio instead of raw to tapdisk2. So use libxl_disk_format_to_string() to instead of libxl__device_disk_string_of_format(). Also update libxl__device_destroy_tapdisk() due to tapdisk-params changed. Note: the content of tapdisk-params/params has been changed... Signed-off-by: Wen Congyang <wency@xxxxxxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> --- tools/libxl/libxl.c | 7 ++++--- tools/libxl/libxl_blktap2.c | 12 +++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 77672d0..aa9345b 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -2340,7 +2340,7 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid, } flexarray_append(back, "tapdisk-params"); flexarray_append(back, libxl__sprintf(gc, "%s:%s", - libxl__device_disk_string_of_format(disk->format), + libxl_disk_format_to_string(disk->format), disk->pdev_path)); /* tap backends with scripts are rejected by @@ -2352,7 +2352,8 @@ static void device_disk_add(libxl__egc *egc, uint32_t domid, case LIBXL_DISK_BACKEND_QDISK: flexarray_append(back, "params"); flexarray_append(back, libxl__sprintf(gc, "%s:%s", - libxl__device_disk_string_of_format(disk->format), disk->pdev_path)); + libxl_disk_format_to_string(disk->format), + disk->pdev_path)); assert(device->backend_kind == LIBXL__DEVICE_KIND_QDISK); break; default: @@ -2744,7 +2745,7 @@ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk, if (disk->format != LIBXL_DISK_FORMAT_EMPTY) flexarray_append_pair(insert, "params", GCSPRINTF("%s:%s", - libxl__device_disk_string_of_format(disk->format), + libxl_disk_format_to_string(disk->format), disk->pdev_path)); else flexarray_append_pair(insert, "params", ""); diff --git a/tools/libxl/libxl_blktap2.c b/tools/libxl/libxl_blktap2.c index 2053403..9b7a5fc 100644 --- a/tools/libxl/libxl_blktap2.c +++ b/tools/libxl/libxl_blktap2.c @@ -54,8 +54,9 @@ char *libxl__blktap_devpath(libxl__gc *gc, int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params) { char *type, *disk; - int err; + int err, rc; tap_list_t tap; + libxl_disk_format format; type = libxl__strdup(gc, params); @@ -67,6 +68,15 @@ int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *params) *disk++ = '\0'; + /* type may be raw */ + rc = libxl_disk_format_from_string(type, &format); + if (rc < 0) { + LOG(ERROR, "invalid disk type %s", type); + return ERROR_FAIL; + } + + type = libxl__device_disk_string_of_format(format); + err = tap_ctl_find(type, disk, &tap); if (err < 0) { /* returns -errno */ -- 1.9.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |