[Libvir] PATCH: Fix virStoragePoolCreate() operation

Daniel P. Berrange berrange at redhat.com
Fri Mar 14 21:39:24 UTC 2008


The virStoragePoolCreate()  was not checking for a potentially NULL field
against startPool() backend driver. It was also failing to run the refresh
operation after starting it. The former caused a crash, the latter caused
no volumes to show up

Dan.

Index: src/storage_driver.c
===================================================================
RCS file: /data/cvs/libvirt/src/storage_driver.c,v
retrieving revision 1.2
diff -u -p -r1.2 storage_driver.c
--- src/storage_driver.c	22 Feb 2008 16:26:13 -0000	1.2
+++ src/storage_driver.c	14 Mar 2008 21:34:04 -0000
@@ -416,8 +416,12 @@ storagePoolCreate(virConnectPtr conn,
         return NULL;
     }
 
-    if (backend->startPool(conn, pool) < 0) {
-        virStoragePoolObjRemove(driver, pool);
+    if (backend->startPool &&
+        backend->startPool(conn, pool) < 0)
+        return NULL;
+    if (backend->refreshPool(conn, pool) < 0) {
+        if (backend->stopPool)
+            backend->stopPool(conn, pool);
         return NULL;
     }
     pool->active = 1;


-- 
|: Red Hat, Engineering, Boston   -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 :|




More information about the libvir-list mailing list