[libvirt] [Libvirt] [PATCH v2] Fix bug #611823 prohibit pools with duplicate storage

Daniel P. Berrange berrange at redhat.com
Tue Aug 2 11:11:50 UTC 2011


On Mon, Aug 01, 2011 at 02:12:51PM -0600, Eric Blake wrote:
> On 07/31/2011 10:58 PM, Lei Li wrote:
> >Make sure the unique storage pool defined and create from different directory to avoid inconsistent version of volume pool created.
> 
> Wrap your commit messages; typically at 70 columns or so (since 'git
> log' adds some indentation, but you want the end result to still fit
> in 80 columns for legibility).
> 
> >
> >Signed-off-by: Lei Li<lilei at linux.vnet.ibm.com>
> >---
> >  src/conf/storage_conf.c      |   36 ++++++++++++++++++++++++++++++++++++
> >  src/conf/storage_conf.h      |    4 ++++
> >  src/libvirt_private.syms     |    2 ++
> >  src/storage/storage_driver.c |    6 ++++++
> >  4 files changed, 48 insertions(+), 0 deletions(-)
> >
> 
> >
> >+virStoragePoolObjPtr
> >+virStoragePoolObjFindByPath(virStoragePoolObjListPtr pools,
> >+                            const char *path) {
> >+    unsigned int i;
> >+
> >+    for (i = 0 ; i<  pools->count ; i++) {
> >+        virStoragePoolObjLock(pools->objs[i]);
> >+        if (STREQ(pools->objs[i]->def->target.path, path))
> >+            return pools->objs[i];
> >+        virStoragePoolObjUnlock(pools->objs[i]);
> >+    }
> >+
> >+    return NULL;
> >+}
> 
> This one is good; in fact, we may even want to expose it as a public
> API, parallel to other virStoragePoolLookupBy* functions (but not
> until after 0.9.4 is released)

No, this API is flawed because def->target.path is not required to
be unique for all types of storage pool.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list