[libvirt] [PATCH] phyp: Don't do a flags check in the storage driver

Daniel P. Berrange berrange at redhat.com
Fri Nov 12 15:39:01 UTC 2010


On Fri, Nov 12, 2010 at 08:24:53AM -0700, Eric Blake wrote:
> On 11/12/2010 06:03 AM, Matthias Bolte wrote:
> > This makes the storage driver fail when the connection is
> > opened with the VIR_CONNECT_RO flag, resulting in a read-only
> > connection with no storage driver.
> > ---
> >  src/phyp/phyp_driver.c |    4 +---
> >  1 files changed, 1 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c
> > index a685bd1..4c723a2 100644
> > --- a/src/phyp/phyp_driver.c
> > +++ b/src/phyp/phyp_driver.c
> > @@ -3927,10 +3927,8 @@ phypDomainSetCPU(virDomainPtr dom, unsigned int nvcpus)
> >  static virDrvOpenStatus
> >  phypVIOSDriverOpen(virConnectPtr conn,
> >                     virConnectAuthPtr auth ATTRIBUTE_UNUSED,
> > -                   int flags)
> > +                   int flags ATTRIBUTE_UNUSED)
> >  {
> > -    virCheckFlags(0, VIR_DRV_OPEN_ERROR);
> > -
> 
> This lets all possible flags through, even bits that are not yet
> defined.  Wouldn't the better approach be to fix virCheckFlags() to
> change 0 to the actual read-only bit that we expect to ignore, while
> still forbidding the remaining 31 bits for future extensibility?

The connection flags are  all interpreted at the layer above and
shouldn't really even be passed into any of these drivers - and
none of the others check flags at this layer. In addition this
entire method is practically a no-op, because all it does is link
up a  pointer to the main connection private data if the driver
name matches.

In any case, returning VIR_DRV_OPEN_ERROR is absolutely wrong
because that kills the entire attempt to open any storage driver
at all.

Regards,
Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list