On Tue, Dec 04, 2012 at 05:43:03PM +0400, Dmitry Guryanov wrote: > Move code for loading inforation about pools to a separate > function - parallelsLoadPools. > > Signed-off-by: Dmitry Guryanov <dguryanov@xxxxxxxxxxxxx> > --- > src/parallels/parallels_storage.c | 66 ++++++++++++++++++++++--------------- > 1 files changed, 39 insertions(+), 27 deletions(-) > > diff --git a/src/parallels/parallels_storage.c b/src/parallels/parallels_storage.c > index 9075dfd..e602299 100644 > --- a/src/parallels/parallels_storage.c > +++ b/src/parallels/parallels_storage.c > @@ -114,33 +114,14 @@ cleanup: > > } > > -static virDrvOpenStatus > -parallelsStorageOpen(virConnectPtr conn, > - virConnectAuthPtr auth ATTRIBUTE_UNUSED, > - unsigned int flags) > +static int parallelsLoadPools(virConnectPtr conn) > { > - char *base = NULL; > - virStorageDriverStatePtr storageState; > - bool privileged = (geteuid() == 0); > parallelsConnPtr privconn = conn->privateData; > + virStorageDriverStatePtr storageState = conn->storagePrivateData; > + bool privileged = (geteuid() == 0); > + char *base = NULL; > size_t i; > > - virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); > - > - if (STRNEQ(conn->driver->name, "Parallels")) > - return VIR_DRV_OPEN_DECLINED; > - > - if (VIR_ALLOC(storageState) < 0) { > - virReportOOMError(); > - return VIR_DRV_OPEN_ERROR; > - } > - > - if (virMutexInit(&storageState->lock) < 0) { > - VIR_FREE(storageState); > - return VIR_DRV_OPEN_ERROR; > - } > - parallelsStorageLock(storageState); > - > if (privileged) { > if ((base = strdup(SYSCONFDIR "/libvirt")) == NULL) > goto out_of_memory; > @@ -194,16 +175,47 @@ parallelsStorageOpen(virConnectPtr conn, > virStoragePoolObjUnlock(privconn->pools.objs[i]); > } > > - parallelsStorageUnlock(storageState); > + return 0; > + > +out_of_memory: > + virReportOOMError(); > +error: > + VIR_FREE(base); > + return -1; > +} > + > +static virDrvOpenStatus > +parallelsStorageOpen(virConnectPtr conn, > + virConnectAuthPtr auth ATTRIBUTE_UNUSED, > + unsigned int flags) > +{ > + virStorageDriverStatePtr storageState; > + virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR); > + > + if (STRNEQ(conn->driver->name, "Parallels")) > + return VIR_DRV_OPEN_DECLINED; > + > + if (VIR_ALLOC(storageState) < 0) { > + virReportOOMError(); > + return VIR_DRV_OPEN_ERROR; > + } > + > + if (virMutexInit(&storageState->lock) < 0) { > + VIR_FREE(storageState); > + return VIR_DRV_OPEN_ERROR; > + } > > conn->storagePrivateData = storageState; > + parallelsStorageLock(storageState); > + > + if (parallelsLoadPools(conn)) > + goto error; > + > + parallelsStorageUnlock(storageState); > > return VIR_DRV_OPEN_SUCCESS; > > -out_of_memory: > - virReportOOMError(); > error: > - VIR_FREE(base); > parallelsStorageUnlock(storageState); > parallelsStorageClose(conn); > return -1; Okay, ACK, Daniel -- Daniel Veillard | Open Source and Standards, Red Hat veillard@xxxxxxxxxx | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list