[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 04 of 16 RFC] blktap3: change libxl__blktap_devpath prototype to return an error code
> -----Original Message----- > From: Ian Campbell > Sent: 26 October 2012 12:22 > To: Thanos Makatos > Cc: xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: Re: [Xen-devel] [PATCH 04 of 16 RFC] blktap3: change > libxl__blktap_devpath prototype to return an error code > > On Wed, 2012-10-24 at 18:02 +0100, Thanos Makatos wrote: > > Make libxl__blktap_devpath return an error code instead of the > device, > > since there is no device in dom0 any more. > > Does this function eventually go away then? Or will it eventually > return some sort of metadata which can be used to connect to the > created tap device? As in blktap2, it creates the tapdisk process, but doesn't return any metadata, so it's still required. I guess changing the name of the function would clarify it. > > > 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 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |