On Fri, Oct 31, 2008 at 12:04:34PM +0100, Chris Lalancette wrote: > Index: src/storage_driver.c > =================================================================== > RCS file: /data/cvs/libvirt/src/storage_driver.c,v > retrieving revision 1.13 > diff -u -r1.13 storage_driver.c > --- a/src/storage_driver.c 21 Oct 2008 17:15:53 -0000 1.13 > +++ b/src/storage_driver.c 31 Oct 2008 10:09:29 -0000 > @@ -963,11 +963,25 @@ > virStorageDriverStatePtr driver = > (virStorageDriverStatePtr)conn->storagePrivateData; > unsigned int i; > + char *stable_path; > > for (i = 0 ; i < driver->pools.count ; i++) { > if (virStoragePoolObjIsActive(driver->pools.objs[i])) { > - virStorageVolDefPtr vol = > - virStorageVolDefFindByPath(driver->pools.objs[i], path); > + virStorageVolDefPtr vol; > + virStorageBackendPoolOptionsPtr options; > + > + options = > virStorageBackendPoolOptionsForType(driver->pools.objs[i]->def->type); > + if (options == NULL) > + continue; > + > + if (options->flags & VIR_STORAGE_BACKEND_POOL_STABLE_PATH) > + stable_path = virStorageBackendStablePath(conn, > driver->pools.objs[i], (char *)path); > + else > + stable_path = (char *)path; > + > + vol = virStorageVolDefFindByPath(driver->pools.objs[i], > stable_path); > + if (stable_path != path) > + VIR_FREE(stable_path);
This VIR_FREE check is slightly evil, how about something more like if (options->flags & VIR_STORAGE_BACKEND_POOL_STABLE_PATH) { char *stablepath = virStorageBackendStablePath(conn, driver->pools.objs[i], path); vol = virStorageVolDefFindByPath(driver->pools.objs[i], stable_path); VIR_FREE(stablepath); } else { vol = virStorageVolDefFindByPath(driver->pools.objs[i], path); } Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list