|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 04 of 16 RFC] blktap3: change libxl__blktap_devpath prototype to return an error code
Make libxl__blktap_devpath return an error code instead of the device, since
there is no device in dom0 any more. Amend the libxl code that uses this
functions accordingly.
diff -r 80e0bc67dcda -r bcb5a6182868 tools/libxl/libxl.c
--- a/tools/libxl/libxl.c Wed Oct 24 17:24:53 2012 +0100
+++ b/tools/libxl/libxl.c Wed Oct 24 17:25:02 2012 +0100
@@ -1844,13 +1844,14 @@ static void device_disk_add(libxl__egc *
break;
case LIBXL_DISK_BACKEND_TAP:
- dev = libxl__blktap_devpath(gc, disk->pdev_path, disk->format);
- if (!dev) {
- LOG(ERROR, "failed to get blktap devpath for %p\n",
- disk->pdev_path);
+ rc = libxl__blktap_devpath(gc, disk->pdev_path, disk->format);
+ if (rc) {
+ LOG(ERROR, "failed to get blktap devpath for %s: %s\n",
+ disk->pdev_path, strerror(rc));
rc = ERROR_FAIL;
goto out;
}
+ dev = NULL;
flexarray_append(back, "tapdisk-params");
flexarray_append(back, libxl__sprintf(gc, "%s:%s",
libxl__device_disk_string_of_format(disk->format),
@@ -2277,8 +2278,13 @@ void libxl__device_disk_local_initiate_a
dev = disk->pdev_path;
break;
case LIBXL_DISK_FORMAT_VHD:
- dev = libxl__blktap_devpath(gc, disk->pdev_path,
- disk->format);
+ rc = libxl__blktap_devpath(gc, disk->pdev_path, disk->format);
+ if (!rc) {
+ LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+ "error getting tapdisk: %s", strerror(rc));
+ rc = ERROR_FAIL;
+ goto out;
+ }
break;
case LIBXL_DISK_FORMAT_QCOW:
case LIBXL_DISK_FORMAT_QCOW2:
diff -r 80e0bc67dcda -r bcb5a6182868 tools/libxl/libxl_blktap3.c
--- a/tools/libxl/libxl_blktap3.c Wed Oct 24 17:24:53 2012 +0100
+++ b/tools/libxl/libxl_blktap3.c Wed Oct 24 17:25:02 2012 +0100
@@ -5,9 +5,9 @@ int libxl__blktap_enabled(libxl__gc *gc)
return 1;
}
-char *libxl__blktap_devpath(libxl__gc *gc, const char *disk,
+int libxl__blktap_devpath(libxl__gc *gc, const char *disk,
libxl_disk_format format) {
- return NULL;
+ return -ENOSYS;
}
int libxl__device_destroy_tapdisk(libxl__gc *gc, const char *be_path) {
diff -r 80e0bc67dcda -r bcb5a6182868 tools/libxl/libxl_internal.h
--- a/tools/libxl/libxl_internal.h Wed Oct 24 17:24:53 2012 +0100
+++ b/tools/libxl/libxl_internal.h Wed Oct 24 17:25:02 2012 +0100
@@ -1344,10 +1344,9 @@ struct libxl__cpuid_policy {
/* libxl__blktap_devpath:
* Argument: path and disk image as specified in config file.
* The type specifies whether this is aio, qcow, qcow2, etc.
- * returns device path xenstore wants to have. returns NULL
- * if no device corresponds to the disk.
+ * returns 0 on success, an error code otherwise
*/
-_hidden char *libxl__blktap_devpath(libxl__gc *gc,
+_hidden int libxl__blktap_devpath(libxl__gc *gc,
const char *disk,
libxl_disk_format format);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |