
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 :|