[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v9 16/18] xen: automatically create XenBlockDevi
From: |
Paul Durrant |
Subject: |
Re: [Qemu-block] [PATCH v9 16/18] xen: automatically create XenBlockDevice-s |
Date: |
Wed, 9 Jan 2019 12:30:32 +0000 |
> -----Original Message-----
> From: Anthony PERARD [mailto:address@hidden
> Sent: 09 January 2019 12:09
> To: Paul Durrant <address@hidden>
> Cc: address@hidden; address@hidden; xen-
> address@hidden; Kevin Wolf <address@hidden>; Max Reitz
> <address@hidden>; Stefano Stabellini <address@hidden>
> Subject: Re: [PATCH v9 16/18] xen: automatically create XenBlockDevice-s
>
> On Tue, Jan 08, 2019 at 02:49:01PM +0000, Paul Durrant wrote:
> > This patch adds create and destroy function for XenBlockDevice-s so that
> > they can be created automatically when the Xen toolstack instantiates a
> new
> > PV backend via xenstore. When the XenBlockDevice is created this way it
> is
> > also necessary to create a 'drive' which matches the configuration that
> the
> > Xen toolstack has written into xenstore. This is done by formulating the
> > parameters necessary for each 'blockdev' layer of the drive and then
> using
> > qmp_blockdev_add() to create the layers. Also, for compatibility with
> the
> > legacy 'xen_disk' implementation, an iothread is automatically created
> for
> > the new XenBlockDevice. This, like the driver layers, will be destroyed
> > after the XenBlockDevice is unrealized.
> >
> > The legacy backend scan for 'qdisk' is removed by this patch, which
> makes
> > the 'xen_disk' code is redundant. The code will be removed by a
> subsequent
> > patch.
> >
> > Signed-off-by: Paul Durrant <address@hidden>
> > Signed-off-by: Anthony Perard <address@hidden>
> > ---
>
> > diff --git a/hw/block/xen-block.c b/hw/block/xen-block.c
> > index a7c37c185a..c6ec1d9543 100644
> > --- a/hw/block/xen-block.c
> > +++ b/hw/block/xen-block.c
> > @@ -7,12 +7,20 @@
> ...
>
> > +static XenBlockDrive *xen_block_drive_create(const char *id,
> > + const char *device_type,
> > + QDict *opts, Error **errp)
> > +{
> ...
> > + Error *local_err = NULL;
> ...
> > + if (!filename) {
> > + error_setg(errp, "no filename");
> > + goto done;
> > + }
> ...
> > + drive->node_name = xen_block_blockdev_add(drive->id, driver_layer,
> > + &local_err);
> > +
> > +done:
> > + g_free(driver);
> > + g_free(filename);
> > +
> > + if (local_err) {
>
> When xen_block_blockdev_add failed, it sets local_err, but nothing after
> sets errp. I'm going to add this while preparing the pull request:
>
> error_propagate(errp, local_err);
>
> Is this fine with you?
Yes, that's fine... the error should have indeed been propagated.
>
> With that fix, I think the series is ready, so:
> Reviewed-by: Anthony PERARD <address@hidden>
>
Thanks.
> > + xen_block_drive_destroy(drive, NULL);
> > + return NULL;
> > + }
> > +
> > + return drive;
> > +}
>
> There is still the warning about using the 'file' driver when
> 'host_device' should be use, but I think we can try to fix that later.
TBH I'm hoping this code can go away before we have to worry about it. We need
to teach libxl how to issue the necessary QMP commands directly; it should know
the difference between a file and a device.
Paul
>
> Thanks,
>
> --
> Anthony PERARD
- [Qemu-block] [PATCH v9 08/18] xen: duplicate xen_disk.c as basis of dataplane/xen-block.c, (continued)
- [Qemu-block] [PATCH v9 08/18] xen: duplicate xen_disk.c as basis of dataplane/xen-block.c, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 09/18] xen: remove unnecessary code from dataplane/xen-block.c, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 01/18] xen: re-name XenDevice to XenLegacyDevice..., Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 12/18] xen: remove 'ioreq' struct/varable/field names from dataplane/xen-block.c, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 14/18] xen: add implementations of xen-block connect and disconnect functions..., Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 18/18] xen: remove the legacy 'xen_disk' backend, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 13/18] xen: purge 'blk' and 'ioreq' from function names in dataplane/xen-block.c, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 17/18] MAINTAINERS: add myself as a Xen maintainer, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 16/18] xen: automatically create XenBlockDevice-s, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 11/18] xen: remove 'XenBlkDev' and 'blkdev' names from dataplane/xen-block, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 10/18] xen: add header and build dataplane/xen-block.c, Paul Durrant, 2019/01/08
- [Qemu-block] [PATCH v9 15/18] xen: add a mechanism to automatically create XenDevice-s..., Paul Durrant, 2019/01/08